本文目录
- 什么时候不能用缺省的构造函数和析构函数
- 请问C++中构造函数和析构函数的具体用法
- 请问c++中基本数据类型算不算对象,如果是对象的话,有没有构造函数和析构函数
- 可以定义没有构造函数的类吗任一类必须要由构造函数吗
- 对象可以没有构造函数或析构函数 对吗
- 构造函数和析构函数的区别
- C++中的结构需要构造函数和析构函数吗
- 构造函数和析构函数求详解
什么时候不能用缺省的构造函数和析构函数
没有什么时候不能用缺省的构造函数和析构函数。是否定义构造函数和析构函数是由设计对象的行为来决定的。例如:需要给对象中的共有数据成员赋初始值,此时可以定义自己的构造函数,但是其公有数据成员也可以用初始值表进行初始化。class A{public:int a,b;};int main(){A s={1,2};//这是的A类数据成员的公有的.所以类外是可以访问的./*s.a=1;s.b=2;*/cout《《s.a《《’ ’《《s.b《《endl;return 0;}
请问C++中构造函数和析构函数的具体用法
构造函数是在对象构建时调用,一个类可以有多个重载的构造函数,析构函数是在对象销毁时构建,但一个类只有一个析构函数。如:#include《iostream》usingnamespacestd;classA{public:A(){cout《《"calla()"《《endl;}A(inta){cout《《"calla(int)"《《endl;}~A(){cout《《"call~a()"《《endl;}};intmain(){{Aa;Ab(10);}}构造函数主要提供在定义对象时初始化成员数据的机会,析构函数销毁该对象构建后分配的资源,如分配的内存。如果没有提供构造函数或析构函数,系统会提供一个默认构造函数或析构函数。
请问c++中基本数据类型算不算对象,如果是对象的话,有没有构造函数和析构函数
注意,int的定义并不做初始化,因为不初始化int时,存的是随机值。但是定义一个A的实例的时候,会隐式调用构造函数,这叫初始化。int i = 0;这里用的是初始化int i;i = 0;这里是赋值运算符不同的。 ---------------------------可以认为有,int a = 0;相当于 int a(0);就是调用构造函数。在C#中,这体现得更明显,因为int在C#中是一个结构,继承自ValueType类。
可以定义没有构造函数的类吗任一类必须要由构造函数吗
首先所有类都是有构造函数、复制构造函数和析构函数的;但是如果我们不显式地定义它们,编译器会自动为我们添加默认的构造函数、复制构造函数和析构函数;如果我们显式地定义了构造函数、复制构造函数或者析构函数,那么编译器就会使用我们定义的函数。例如: class A {}; 类A中没有定义任何成员,但是编译器会为它添加默认的 构造函数、复制构造函数和析构函数,以便创建对象,销毁对象和复制对象;默认的构造函数 和 析构函数 都是public的,不做任何事情 的,相当于函数体是空的,其中构造函数默认是无参数的;默认的复制构造函数是把所有成员复制给另一个对象(属于 浅复制 ) 下面是显式定义 构造函数、复制构造函数和析构函数 的例子#include 《iostream》using namespace std;class A{public: A(string name) //显式定义构造函数,系统将不产生默认构造函数,而使用定义的构造函数 { this-》name = name; cout《《name《《"构造"《《endl; } ~A() //显式定义析构函数,系统将不产生默认析构函数,而使用定义的析构函数 { cout《《name《《"析构"《《endl; } A(const A &a)//显式定义复制构造函数,系统将不产生默认复制构造函数 { this-》name = a.name; cout《《name《《"复制"《《endl; }private: string name;};int main(int argc, char *argv){ A a("a"); //构造对象a A b(a); //用 a 复制出一个对象 b return 0; //函数结束后自动 析构 栈 中的 对象}
对象可以没有构造函数或析构函数 对吗
会有默认的构造和析构函数的
不对,如果你没有编写构造函数或者析构函数,系统会给你添加默认的构造函数或者析构函数
构造函数和析构函数的区别
1、概念不同:
析构函数:对象所在的函数已调用完毕时,系统自动执行析构函数。
构造函数:是一种特殊的方法。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
2、作用不同:
析构函数:析构函数被调用。
构造函数:为对象成员变量赋初始值
3、目的不同:
析构函数:”清理善后” 的工作
构造函数:主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
C++中的结构需要构造函数和析构函数吗
要的析构函数主要作用是销毁动态分配的成员对象和额外的"当类对象销毁时需要进行的动作".构造函数主要作用是成员对象的初始化和"类对象创建时需要进行的动作".
构造函数和析构函数求详解
构造函数就是在创建一个对象的时候能够调用的函数,可以定义多个构造函数,类似于函数的重载,如果你不定义构造函数,那么系统会默认给你创建一个构造函数,析构函数你可以理解为销毁对象时候释放内存。多看看书就能明白。