鱼C论坛

 找回密码
 立即注册
查看: 1156|回复: 7

在new实例化一个类时候,实例化后,一定要给对象成员赋值吗?

[复制链接]
发表于 2022-2-26 22:23:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在new实例化一个类时候,实例化后,一定要给对象成员赋值吗?对象成员是空的不行吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-26 22:28:44 | 显示全部楼层
你说的是属性赋值吗?
如果是类的属性的话,你完全可以再__init__方法再去给其赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-26 22:36:43 | 显示全部楼层
大马强 发表于 2022-2-26 22:28
你说的是属性赋值吗?
如果是类的属性的话,你完全可以再__init__方法再去给其赋值

不是的,就是一般类的成员
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-26 22:37:15 | 显示全部楼层
janeyjhon 发表于 2022-2-26 22:36
不是的,就是一般类的成员

c++里面的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-26 23:04:22 | 显示全部楼层

抱歉,没注意看
c++没咋学,帮不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-26 23:52:07 | 显示全部楼层
不是很明白你的意思,一般都要看你的构造函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-27 00:11:19 | 显示全部楼层
  1. #include <iostream>

  2. using namespace std;

  3. class MyClass{
  4.     public:
  5.         int m_x, m_y;
  6.         MyClass();
  7.         MyClass(int, int);
  8.         MyClass(const MyClass &obj);
  9.         ~MyClass();
  10. };

  11. MyClass::MyClass(){
  12.     std::cout << "构造函数 A" << std::endl;
  13. }

  14. MyClass::MyClass(int a, int b): m_x(a), m_y(b){
  15.     std::cout << "构造函数 B" << std::endl;
  16. }

  17. MyClass::MyClass(const MyClass &obj){
  18.     m_x = obj.m_x;
  19.     m_y = obj.m_y;
  20.     std::cout << "拷贝构造函数" << std::endl;
  21. }

  22. MyClass::~MyClass(){
  23.     std::cout << "析构函数" << std::endl;
  24. }


  25. int main()
  26. {
  27.     MyClass A(13, 5); // 成员赋值,调用构造函数 B
  28.     MyClass B = A; // 拷贝,调用拷贝构造函数
  29.     MyClass *C = new MyClass(); // 成员没有赋值,调用构造函数 A
  30.     delete C; // 用 new 必须要有 delete,手动释放内存

  31.     return 0;
  32. }
复制代码
  1. 构造函数 B
  2. 拷贝构造函数
  3. 构造函数 A
  4. 析构函数
  5. 析构函数
  6. 析构函数
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-27 11:03:02 | 显示全部楼层
new一个类就会自动调用其对应的构造函数。
如果在构造函数中没有初始化,后续也没有初始化就使用了,那么它的值是未定义的,也就是说鬼知道它是多少,没有所谓“空的”变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 09:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表