90分钟C++面向对象编程速成---常见类的成员函数

class student
{
    publice:
    int age ; 
    string name;
    
    //构造函数--没有输入和返回值,且名字和类的名字一样
    student();
    //带参数构造函数,同名的构造函数申明(重载),但是带有参数
    student(int a, string b);
    
    static int cnt;    //静态成员数据,统计又多少个对象
    static int coount;    //静态成员函数,返回有多少个对象
}

1.普通成员函数

bool student :: set(int a);

2.构造函数---自动初始化-----对象初始化

        优点:对多个成员实现自动化赋值,不需要手动一个一个赋值 

student::student()
{
    age =20; //在构造函数中,可以对全部成员数据给一个默认值
    name = darren;
}

int main()
{
    //在主函数建立对象时会自动调用构造函数赋值
    student aa ; 
}

3.带参数的构造函数,动态初始化对象

student :: student( int a , string b)
{
    age = a;
    name = b;

}


int main()
{
    //在主函数建立对象时会自动调用构造函数赋值
    student aa ; 
    //带参数的构造函数,需要传入参数,个性化定制
    student bb ( 25, "darren");
}

4.析构函数---销毁对象,释放内容

        需要定义为指针类型才可以动态去释放内存

  student ::~student (); //比构造函数多个~,没有输入值,返回值。
删除过程由系统自动进行
在主函数中并不能直接运行
    student aa;
    delete aa;
    

正确做法:
    student * p =new student(20, " darren");
    delete p;

        后面补充---不同类内存管理和存放空间的内容

5.常成员函数 --只读不写

const 标识符:不可以修改,只能读取

bool student :: read () const; 

        可以扩展了解一下:常数指针和指针常数,在面试过程中会经常考到

6。静态成员函数,依赖于类,但不依赖于某个对象

static 标识符:静态标识符  描述全局又与某个对象属性无关

student ::student()
{
    age =20 ;
    name = "darren";
    Cnt = cnt +1 ;    //每次调用析构函数,cnt都会加一

}

int student :: count() //静态成员函数的定义 注意这里不写static
{
    return cnt;
}

int main ()
{
    student aa;
    student bb;
    
    aa.count (); //调用count方法,输出cnt 当前建立对象的值 2
    bb.count (); // 同样输出2  
    
    //只有不依赖对象的静态函数才可以这么写
    student::count()://同样输出2 
}

static在面试中也是比较容易被问的,需要了解局部变量,全局变量,静态局部变量的生命周期

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值