【C++初学】类和对象定义与构造函数

一.类和对象定义
class 类型名
{
public:
公有成员(外部接口)
private:
私有成员(只允许类内函数访问,有后续操作)
protected:
保护成员

二.构造函数
def:给对象进行初始化的函数。
gra:
函数名与类名相同;
无返回值(return);
1.委托构造函数:可以以后在修改构造函数时,只修改一次。
2.复制构造函数:用已经存在的对象初始化另一个对象
形参必须为本类对象的引用&p,需加const;
发生复制构造的三种情况:
①用一个对象初始化另一个对象
②对象为函数形参,用实参初始化形参
③函数return一个对象
可以自定义复制程度,默认只能一一对应
3.析构函数:完成对象被删除前的清楚工作。

#include <iostream>

using namespace std;
//类的定义
class Clock
{
public:
    Clock(int newH,int newW,int newS);//声明构造函数
    Clock();//声明默认构造函数
    Clock(const Clock &c)=delete//指示编译器不生成复制构造函数
    ~Clock();//默认析构函数
    void setTime(int newH=0,int newM=0,int newS=0);
    void showTime();
private:
    int hour,minute,second;
};
//构造函数的实现
Clock::Clock(int newH,int newM,int newS):
    hour(newH),minute(newM),second(newS)//将形参初始给成员
    {}//无返回值
//默认构造函数实现
Clock::Clock():
    hour(0),minute(0),second(0)//初始化成员
    {}
//默认构造函数利用委托实现
Clock():Clock(0,0,0){}
//类中函数实现
void Clock::setTime(int newH,int newM,int newS)
{
    hour=newH;
    minute=newM;
    second=newS;
}
//析构函数实现
Clock::~Clock(){}
void Clock::showTime()
{
    cout<<hour<<":"<<minute<<":"<<second;
}
int main()
{
    Clock myClock(0,0,0);//定义对象并初始化,调用有形参的构造函数
    Clock myClock2;//定义对象并初始化,调用默认构造函数
    myClock.showTime();
    myClock2.showTime();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42825058/article/details/83350645