社区
C++ 语言
帖子详情
MyClass mc=new MyClass会调用MyClass的构造函数吗?
pwtitle
2004-08-11 07:33:48
1、MyClass *mc = new MyClass
2、MyClass mc = new MyClass
3、MyClass mc;
我的理解
1、调用了MyClass的构造函数
2、没有调用MyClass的构造函数,只是分配一个MyClass数据成员大小的堆空间
3、同1
...全文
305
9
打赏
收藏
MyClass mc=new MyClass会调用MyClass的构造函数吗?
1、MyClass *mc = new MyClass 2、MyClass mc = new MyClass 3、MyClass mc; 我的理解 1、调用了MyClass的构造函数 2、没有调用MyClass的构造函数,只是分配一个MyClass数据成员大小的堆空间 3、同1
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DiabloWalkOnTheEarth
2004-08-12
打赏
举报
回复
2 好难看,要实现当然也行,重载个
MyClass& operator = ( const MyClass* );
或者写个 MyClass( const MyClass* ) 的构造函数就可以啦,咔咔
没看到有人有这种用法
Kusk
2004-08-11
打赏
举报
回复
就直接声明好了:
MyClass mc;
如果你想自由分配,就:MyClass &mc = *(new MyClass);
pwtitle
2004-08-11
打赏
举报
回复
那我象实现 2 该怎么办?
leasun
2004-08-11
打赏
举报
回复
指针和指针指向的对象可不一样啊
Breeze
2004-08-11
打赏
举报
回复
1
new之后会返回一个地址,分配空间,调用构造函数
对应new的肯定是一个指针
感觉楼主对new的含义没搞清楚
fmonkey
2004-08-11
打赏
举报
回复
1,3调用无参数的构造函数
2语法错误
Kusk
2004-08-11
打赏
举报
回复
没有2这种写法。new表达式的返回值是指针类型,不能初始化给对象(特殊重载过赋值运算的不计考虑)。1,3都调用构造函数。
宝_爸
2004-08-11
打赏
举报
回复
2编译错误
1,3会调用构造函数。
beyondtkl
2004-08-11
打赏
举报
回复
2. 错误
1.3都调用构造函数 缺省的.
C++拷贝
构造函数
什么情况被
调用
?
1. 你自定义的类通过按值传递传给一个函数 void MyFunc(My
Class
my
class
); //
调用
这个函数
会
调用
拷贝
构造函数
2. 你想通过已有的类的一个对象来创建另一个对象 My
Class
my
class
1; My
Class
my
class
2(my
class
1);//这里
会
调用
拷贝
构造函数
3. 当你用到容器(例如vector)需要向容器中增加元素的时候 vector v; My
Class
my
class
; v.push_back(my
class
); //这里
调用
拷贝
构造函数
...
拷贝
构造函数
调用
总结
以下3种情况
会
调用
拷贝
构造函数
1. 在声明语句中用一个对象初始化另外一个对象
2. 函数参数值传递
3. 函数返回值值传递
对于1
My
Class
my1;
My
Class
my2 = my1; //
调用
拷贝
构造函数
在类中
构造函数
的初始化列表中
调用
拷贝
构造函数
但是直接在
构造函数
中写
调用
构造函数
+赋值运算符 (
构造函数
和赋值运算符 分开
调用
)
用
new
创造一个指针时是否
调用
构造函数
当声明或者
new
一个指针时并没有分配内存空间,所以不
会
调用
构造函数
的。 代码如下,定义一个指针p2 运行结果: 正常定义p1
会
调用
My
Class
()
构造函数
,
构造函数
只被
调用
一次,说明p2并没有
调用
。 delete释放了p2,系统
会
自动
调用
析构函数释放p1。 ...
C++中类的
构造函数
与复制
构造函数
在网络上有朋友提到“主要原因在于编译器的优化,当复制
构造函数
是public时,编译器就
会
根据这个特性来对代码进行优化。当程序运行时,编译器发现复制
构造函数
是public,则说明程序允许对象之间的复制,此时就
会
通过直接
调用
自定义
构造函数
来初始化对象,而不再
调用
复制
构造函数
,完成优化”。这位朋友还提到,如果将复制
构造函数
改为private,此时如下代码 My
Class
mc
3 = “my
class
”; 编译时就
会
报错。 但是,至少在VC++6.0及以上版本的编译器中,并不是这样的。
java
调用
其他
构造函数
_如何在Java中
调用
另一个
构造函数
?
如何在Java中
调用
另一个
构造函数
?是否可以从另一个(在同一个类中,而不是从子类中)
调用
构造函数
? 如果有,怎么样? 什么是
调用
另一个
构造函数
的最佳方法(如果有几种方法可以做到)?18个解决方案2568 votes对的,这是可能的:public
class
Foo {private int x;public Foo() {this(1);}public Foo(int x) {this.x = x...
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章