构造函数初始化以及拷贝构造函数常见错误,默认初始化const类成员会报错!要用列表初始化!!!!...

本文介绍了一个C++教师类的实现,包括列表初始化和拷贝构造函数的使用。重点展示了如何正确地初始化类成员变量,并解释了拷贝构造函数的作用及其实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
#include<string>
using namespace std;

class Teacher
{
 public:
   Teacher(string name="Jam",int age=1,int m=1000):m_strName(name),m_iAge(age),m_iMax(m) 
//注意这里没分号,列表初始化赋值不能用=号,用() { cout<<" Teacher列表初始化"<<endl; }   Teacher(const Teacher &tea):m_iMax(1000)
//这里是定义拷贝构造函数,格式必须是const、本类、以及引用!
//如果不定义拷贝构造函数,系统默认定义!!
//而且这里要注意一定要列表初始化const常量m_iMax,不然会报错!!
//因为拷贝构造函数只是简单的复制,而m_iMax是不能被二次赋值的!
   {
     cout<<"这里是拷贝构造函数"<<endl;
   }
string getName() { return m_strName; } int getAge() { return m_iAge; } int getMax() { return m_iMax; } private: string m_strName; int m_iAge; const int m_iMax;//当类成员是常量,const修饰,则不能用默认初始化,用列 表初始化!! }; //注意分号 int main() { Teacher t; cout<<t.getName()<<" "<<t.getAge()<<" "<<t.getMax()<<endl; }

 

转载于:https://www.cnblogs.com/cxy931980808/p/6646219.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值