C++(笔记)类、构造器基础

一、创类

1.类的特征

1.类:决定一个对象将是什么样的(具备什么属性和功能)
2.类包含什么: 属性(特征,成员变量)和方法(功能操作,成员函数

2.类的成员访问

1.类内访问:通过成员函数(不限)
2.类外访问:对象、对象指针(公有)

3.类的类型

1.公有类型(一般是方法):public关键字声明,该类型成员定义了类的外部接口,在类外只能访问该类的公有成员
2.私有类型(一般是属性):private关键字声明,只能被本类成员函数访问,来自类外部任何访问非法
3.保护类型:暂时先不解

4.类的基本结构

class 类名称
{
public:(必须要有)
成员函数
private:
成员变量
};
///
///
成员函数的实现
void(函数返回类型) 类名称::成员函数名(参数)
{
实现内容
}
///
///
主函数使用类
1.先定义类的变量:类名称+自己定义变量名
2.利用自己定义的类的变量调用成员函数:自己定义变量名.成员函数

5.创类实例

#include <iostream>
using namespace std;

class Clock{
    public://外部接口,公有成员函数 
        void setTime(int h=0,int m=0,int s=0); 
        void getTime();
    private://私有成员 
        int hour,minute,second;
};

void Clock::setTime(int h,int m,int s)
{
    hour=h;
    minute=m;
    second=s;
}

void Clock::getTime()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}

int main()
{
    Clock myClock;
    cout<<"first time"<<endl;
    myClock.setTime();//设置时间为默认值 
    myClock.getTime();//显示时间 
    cout<<"second time"<<endl;
    myClock.setTime(8,30,30);
    myClock.getTime();

    return 0;
}

///000
///8,30,30 

二、构造器

(初始化工作,在定义中,对成员变量赋初值)

1. 构造器注意点

1.构造器的名字必须和它所在的类的名称完全相同
2.系统在创建某个类的实例时,会第一时间自动调用这个类的构造器
3.构造器永远不会返回任何值
4.若没有自己添加构造器,编译器会自动添加最简单的构造器

2.构造器创建

///构造器中无参
class A
{
public:
A();

};
A::A()
{
成员变量=值;

}

int main()
{
A myA;
myA.输出作用的成员函数

}
///
构造器中有参
class A
{
public:
A(int p=8){//这里是类内定义了
成员变量=p;
}

};
int main()
{

}

3.构造器无参和有参实例

//无参构造器
#include <iostream>
using namespace std;

class A
{
    public:
        A();//无参构造器
        void setA(int newA);
        void getA();
    private:
        int q;
};

A::A()
{
    q=3;
}

void A::setA(int newA)
{
    q=newA;
}

void A::getA()
{
    cout<<q<<endl;
}

int main()
{
    A a;
    a.getA();

    a.setA(1);
    a.getA();
    return 0;
}

//有参构造器
#include <iostream>
using namespace std;

class A
{
    public:
        A(int p=7){//含参构造器,函数可以类内定义也可以类外定义 
        q=p;
        } 
        void setA(int newA);
        void getA();
    private:
        int q;
};


void A::setA(int newA)
{
    q=newA;
}

void A::getA()
{
    cout<<q<<endl;
}

int main()
{
    A a;
    a.getA();

    a.setA(1);
    a.getA();
    return 0;
}

三、复制构造器

1.作用

我个人总结复制构造器作用就是使用一个你已经定义好的对象(已经存在),去初始化另一个同类的一个新对象

2.实例说明复制构造器

#include <iostream>
using namespace std;


class Person{
    public:
        void setAge(int newAge);
        void getAge();
        void getName();
        Person(int a,char n){
            age=a;
            name=n;
        }
        Person(Person &p);  //赋值构造器 
        int geta(){return age;}//利用连个get函数来提取值 
        char getn(){return name;}
    private:
        int age;
        char name;      
};

Person::Person(Person &p)//复制构造器的定义 
{
    age=p.age;
    name=p.name;
    cout<<"copy"<<endl;
}

void Person::setAge(int newAge)
{
    age=newAge;
}

void Person::getAge()
{
    cout<<age<<endl;
}

void Person::getName()
{
    cout<<name<<endl;
}

int main()
{
    Person p(14,'s');//这里就是使用已经存在的对象初始化同类的新对象 
    Person b(p);
    cout<<b.geta()<<endl;
    cout<<b.getn()<<endl;

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值