问题描述
- C++类的对象问题,到底是创建对象还是局部变量
-
我定义了一个Cat类,然后不清楚Cat Frisky与Cat Frisky()的区别,本来以为前者是定义常规局部变量,将调用析构函数,后者是定义的类的对象。刚刚遇到一个前者是创建了一个类对象,实在搞糊涂了。。求大神助攻小白,大恩不言谢!!
解决方案
Cat Frisky; 调用默认构造函数
Cat Frisky(); 调用无参数的构造函数(即默认构造函数)
Cat Frisky(x, y); 调用需要两个参数的构造函数(假设存在该构造函数)
三者都会创建对象
解决方案二:
准确来说构造对象是需要加()显示的告诉编译器你调用了构造函数,不写()的话,编译器会自己处理找你调用的构造函数
解决方案三:
前者是定一个类的实例,缺省构造函数,后者可以传递构造函数参数等
解决方案四:
首先你这个问题就不太对,什么叫“对象”?什么叫“局部变量”?
Cat Frisky与Cat Frisky()都会调用构造函数创建一个Cat类的对象,即实例,至于哪个构造函数就是@xpbobcsdn所说的了。
解决方案五:
a7777777888的回答靠谱的
解决方案六:
我用vs调试了一下,发现Cat Frisky()这种写法属于无效代码一样。
解决方案七:
一个是类的名称,一个是构造函数
解决方案八:
纠正一下,Cat Frisky();这种写法是有问题的,而且编译报错,因为编译器会把他当做函数来处理,所以说如果想显示的调用默认构造就必须用Cat Frisky;
时间: 2024-11-01 17:06:02