cbys.net
当前位置:首页 >> 在C++类中,定义构造函数的目的是什么 >>

在C++类中,定义构造函数的目的是什么

可以在类外定义啊 举例: #include class Student { private: int age; public: Student(); Student(int); ~Student(); int Getage(); }; Student::Student(int a) { age = a; } Student::Student() { age = 0; } Student::~Student() { } Stude...

构造函数属于某个类,private,public 都行, 一般默认private,只能被该类实例化对象时使用。所以一般private

说白点是对对象的初始化,作用就是在对象被创建时利用特定的值构造对象,将对象初始化为一个特定状态。

不一定的,如果你自己实现了构造函数,就没有,如果没有实现构造函数,系统会默认加上一个无参数的构造函数。应该说c++的类必须有构造函数。

是这样的。 你定义了构造函数,系统就不会用默认的构造函数了。 代码中你定义了自己的带参构造函数,所以系统的默认构造函数就在编译时,不会生成了。 这个就需要自己定义了。 否则的话,Date a;这样使用的时候就会报错。

virtual 函数定义后的=0是指纯虚函数。 析构函数设置为公有是让其可以析构,私有的析构函数不能正常析构调用。 至于为什么这个类的构造函数设置为保护,是因为有纯虚函数的类都是抽象类,抽象类不能实例化,因此这么写可以提醒程序员不要new。

如果一个类中没有定义任何构造函数,编译器就会自动合成一个默认构造函数,并对一些类的成员进行初始化,你可以运行一下这个程序: 虽然类Y没有定义构造函数,但其成员_x还是被初始化了,即编译器合成的构造函数调用了X的构造函数,将_a初始化为...

无参构造函数,需要都写,可能你用不到,但这是一种良好的习惯。1,2可合并为 Point(double _x=1,double _y=2):x(_x),y(_y) {} 等价。但当字符(字符串)赋值时,为了安全,不能用初始化列表形式(第一种)。

方法1: b::b(int x) : a(x) {} 方法2: private: class a *data; b::b(int x) { data = new a(x); }

网站首页 | 网站地图
All rights reserved Powered by www.cbys.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com