2 qq 34204094 qq_34204094 于 2016.03.29 16:57 提问

关于构造函数。。。。

如果直接显示调用构造函数如A() 但是没有声明 对象 那么是不是构造就无法对对象进行初始化 因为this指针为空

3个回答

qq_33463022
qq_33463022   2016.03.29 17:38
已采纳

在对象编程语言中,一般在定义了一个类型之后,为了能使用它,必须把这个类型具体化,也就是指定为一个具体的对象。而构造函数就是从定义出发,建立与定义相对应的对象。用计算机语言来说,光有定义是不能使用,必须通过构造函数来分配内存空间给可使用的对象。

caozhy
caozhy   Ds   Rxr 2016.03.29 17:07

如果没有对象,根本就不能调用成员函数。如果你调用了成员函数,那么肯定说明是有对象实例的。

Ash_Delia
Ash_Delia   2016.03.29 17:04

怎么可能,调用后就会分配内存。
如果A(){
a = 10;
}
那么这个int 型的a就已经被初始化并赋值了,只不过你找不到他了而已。当然也就内存泄露了。此外this指针是相对于类的,它不是空,只不过脱离了作用域也会找不到了而已。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于构造函数的理解
代码 1(父类和子类都自定义构造函数):class father { public: father(int agee):age(agee) { cout<<"父类构造函数!"<<age<<endl; } int age; }; class son : public father { public: son(int agee):father(a
java面试题二十五 构造函数
-
构造函数总结(选择题)
下列说法哪个正确? 所有类都必须定义一个构造函数 构造函数必须有返回值 构造函数可以访问类的非静态成员 构造函数必须初始化类的所有数据成员
关于C++中的构造函数、拷贝构造函数、析构函数的总结
关于C++中的构造函数、拷贝构造函数、析构函数以及赋值运算符重载的总结
构造函数与析构函数的示例
class Student { public: Student(); Student(int); private: double score, count; };      构造函数是一个很神奇的函数---与类名相同的成员函数并且不能有返回值,一个类可以拥有多个构造函数(换句话说可以对构造函数进行重载),每个构造函数拥有不同数量的参数(可以无参数); 多数情况下,编译器为类生成一个公有
关于构造函数的调用顺序
 作者:王姗姗, 华清远见嵌入式学院讲师。在说构造函数之前我们得先弄明白几个问题,首先是什么是类的构造函数,什么是类的成员对象,什么是基类,然后我们再来说构造函数的调用顺序。    1、 类的构造函数    构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰,这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。构造函数不能被直接调用,必须通
关于类的构造函数
构造与析构函数 析构函数的三大功能 1.构造函数 2.初始化函数 3.类型转化
C++中的移动构造函数及move语句示例详解
这篇文章主要给大家介绍了关于C++中移动构造函数及move语句的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。前言本文主要给大家介绍了关于C++中移动构造函数及move语句的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。首先看一个小例子:#include &amp;lt;iostream&amp;gt...
黑马程序员——构造函数与set方法
1,下面这两个的区别,构造函数初始化和set在下面代码中有何不同?为什么?    Person(String name)         {           this.name = name;         } public String getName() {                 return name;         } ------------------
C++构造函数以及析构函数的若干面试问题
Q1:构造函数能否重载,析构函数能否重载,为什么? A1:函数重载就是同一函数名的不同实现,并且能在编译时能与一具体形式匹配,这样参数列表必须不一样。由于重载函数与普通函数的差别是没有返回值,而返回值不能确定函数重载,所以构造函数可以重载; 析构函数的特点是参数列表为空,并且无返回值,从而不能重载。Q2:析构函数为什么一般情况下要声明为虚函数? A2:虚函数是实现多态的基础,当我们通过基类的指针