在c++中,结构可以有构造函数吗?
我一直试图解决这个问题,但我没有得到语法。
在c++中,结构可以有构造函数吗?
我一直试图解决这个问题,但我没有得到语法。
当前回答
在c++中,struct和c++类只有一个区别,默认情况下,struct成员是public,类成员是private。
/*Here, C++ program constructor in struct*/
#include <iostream>
using namespace std;
struct hello
{
public: //by default also it is public
hello();
~hello();
};
hello::hello()
{
cout<<"calling constructor...!"<<endl;
}
hello::~hello()
{
cout<<"calling destructor...!"<<endl;
}
int main()
{
hello obj; //creating a hello obj, calling hello constructor and destructor
return 0;
}
其他回答
struct TestStruct {
int id;
TestStruct() : id(42)
{
}
};
类、结构和联合在下表中简要描述。
是的,在结构中有构造函数是可能的,这里有一个例子:
#include<iostream.h>
struct a {
int x;
a(){x=100;}
};
int main() {
struct a a1;
getch();
}
在c++中,struct和c++类只有一个区别,默认情况下,struct成员是public,类成员是private。
/*Here, C++ program constructor in struct*/
#include <iostream>
using namespace std;
struct hello
{
public: //by default also it is public
hello();
~hello();
};
hello::hello()
{
cout<<"calling constructor...!"<<endl;
}
hello::~hello()
{
cout<<"calling destructor...!"<<endl;
}
int main()
{
hello obj; //creating a hello obj, calling hello constructor and destructor
return 0;
}
在c++中,struct和class都是相等的,除了struct的默认成员访问说明符是public和class有private。
在c++中使用struct的原因是c++是C的超集,必须向后兼容遗留的C类型。
例如,如果语言用户试图在他的c++代码中包含一些C头文件legacy-c.h,它包含struct Test {int x,y};struct Test的成员应该像C一样可以访问。