C++ 结构体特点:
- C里面没有,C++里面有
- C++里根本就没有结构,仅仅为了兼容c才有结构这种东西,实际上除了名字以外,C++的结构就是类!!
- 如果从空间分配上来看,struct变量放在栈上,而class变量放在堆上,因此struct变量会自动释放,而class变量需要手动释放。
c不是面向对象的语言,没有继承等概念。 - 在C++中,struct和class没啥两样,只是struct默认是public,class默认是private. struct内数据默认是public类型的,class内数据默认是private类型的。
#include<iostream>
#include<string>
struct Person
{
Person(std::string name);
std::string greet(std::string other_name);
std::string m_name;
};
Person::Person(std::string name)
{
m_name = name;
}
std::string Person::greet(std::string other_name)
{
return "Hi " + other_name + ", my name is " + m_name;
}
int main()
{
Person m_person("JANE");
std::string str = m_person.greet("JOE");
std::cout<<str<<std::endl;
}