-
c++结构体中允许存在构造函数、析构函数、拷贝构造函数
-
默认属性是公有属性,可以用权限限定
-
如果写了构造函数就是一个类,不能用c语言的用法使用,必须用类的方式去使用结构体
在c++没有写构造函数/权限限定的时候,结构体用法和c语言一样,具体内容可以看看这篇博客:
struct MM
{
//protected:
string name;
int age;
MM(string name) :name(name)
{
cout << "构造函数" << endl;
}
MM(const MM& mm)
{
name = mm.name;
age = mm.age;
cout << "拷贝构造" << endl;
}
~MM()
{
}
};
int main()
{
//采用创建时赋值的方式,也是调用构造函数--->隐式调用
/*MM object = { "小明",19 }; 报错:没有与参数列表匹配的构造函数
因为没有两个参数的构造函数*/
MM object = { "小明" }; //只能构造一个参数的
cout << object.name << "\t" << object.age << endl;
//C++结构体一旦写了构造函数,就必须按照C++类的方式去用
MM mm(object);
cout << mm.name << "\t" << mm.age << endl;
return 0;
}