empty character constant

本文介绍了一种常见的编译错误——空字符常量的问题,并提供了如何修正这一错误的具体方法。通常出现在字符串数组初始化时,通过将空字符串替换为 '' 可以有效解决问题。
 编译提示作息如下:  
  empty   character   constant;

  例如:  
  就是对于一个字符串数组  
  array[NUMBER]   =   '';//可能你写成这样  
  就会提示上面的错误:  
  可以改成这样试试 
  array[NUMBER]   =   '\0'就可以了 
在C++中,当定义 `class Empty` 时,如果没有显式地定义某些特殊成员函数,编译器会默认生成这些函数。以下是这些默认生成的成员函数的相关情况: ### 1. 缺省构造函数(`Empty()`) 缺省构造函数用于创建类的对象时进行初始化操作。如果类中没有定义任何构造函数,编译器会自动生成一个缺省构造函数。这个构造函数不接受任何参数,并且在函数体中不执行任何操作,仅仅是创建对象。例如: ```cpp class Empty { public: Empty(); // 缺省构造函数 }; ``` ### 2. 拷贝构造函数(`Empty(const Empty& rhs)`) 拷贝构造函数用于创建一个新对象,该对象是另一个同类型对象的副本。当使用一个对象来初始化另一个对象时,会调用拷贝构造函数。编译器生成的拷贝构造函数会逐个成员地复制对象的数据成员。例如: ```cpp class Empty { public: Empty(const Empty& rhs); // 拷贝构造函数 }; ``` ### 3. 析构函数(`~Empty()`) 析构函数在对象的生命周期结束时被调用,用于执行一些清理操作,比如释放对象占用的资源。编译器生成的析构函数不执行任何操作,只是销毁对象。析构函数是否为虚函数需要根据具体情况判断。例如: ```cpp class Empty { public: ~Empty(); // 析构函数 }; ``` ### 4. 赋值运算符重载(`Empty& operator=(const Empty& rhs)`) 赋值运算符重载用于将一个对象的值赋给另一个同类型的对象。编译器生成的赋值运算符重载函数会逐个成员地复制对象的数据成员。例如: ```cpp class Empty { public: Empty& operator=(const Empty& rhs); // 赋值运算符 }; ``` ### 5. 取址运算符重载(`Empty* operator&()` 和 `const Empty* operator&() const`) 这两个取址运算符重载函数分别用于获取对象的非 const 指针和 const 指针。例如: ```cpp class Empty { public: Empty* operator&(); // 取址运算符 const Empty* operator&() const; }; ``` 综上所述,定义 `class Empty` 后,编译器默认生成的成员函数如下: ```cpp class Empty { public: Empty(); // 缺省构造函数 Empty(const Empty& rhs); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=(const Empty& rhs); // 赋值运算符 Empty* operator&(); // 取址运算符 const Empty* operator&() const; }; ``` 以上内容参考了引用 [1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值