c++调用类成员和属性的几种方法

本文探讨了C++中类静态成员与普通成员的区别,并详细阐述了调用类成员和属性的多种方法,包括类方法与对象方法的互访规则,以及类属性的初始化和命名规则。同时,文章提到了类继承中的访问控制,强调派生类与父类之间的关系以及继承访问符的应用。

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

c++类关于类静态成员和方法和类的普通成员和方法的关系以及区别

下面把静态属性(方法)称为类的属性(方法) ,普通属性(方法)称为对象的属性(方法)

调用类成员和属性的几种方法

/*

调用类成员和属性的几种方法:
    类名::属性或方法名
    对象.属性或对象名
*/
#include<cstdio>
#include<iostream>
using namespace std;
class Cat{
public:
    static int tot;
    static void Comemet(){
    tot=100;
    }
    static void Print(){
    cout<<tot<<endl;
    }
};
int Cat::tot=0;
int main()
{
    Cat::Comemet();
    Cat::Print();
    cout<<Cat::tot<<endl;
    Cat a;
    a.Print();
    a.Comemet();
    cout<<a.tot<<endl;
    return 0 ;
}

类和对象的方法和属性大的互相调用问题

  1. 公有私有保护同样适用类的属性和类的方法(为什么不呢?)
  2. 类的属性必须在主函数外进行初始化(必须初始化)
  3. 类方法和类属性不能和对象方法和对象属性重名。(会存在二义性的)
  4. 对象方法可访问类方法和类属性,类方法不能直接访问对象方法和属性( 只有制定一个对象才可访问对象的方法和属性)
/*  一 公有私有保护同样适用类的属性和类的方法 */
#include<cstdio>
#include<iostream>
using namespace std;
class Cat{
private:
    static int tot;
    static void Comemet(){
    tot=100;
    }
};
int Cat::tot=0;/*编译*/
int main()
{
    Cat::Comemet();/*编译失败   不能直接访问私有方法 */
    cout<<Cat::tot<<endl;/*编译失败   不能访问直接直接私有成员 */
}

/* 二  类的属性必须在主函数外进行初始化 */
#include<cstdio>
#include<iostream>
using namespace std;
class Cat{
private:
    static int tot;
public:
    static void Comemet(){
    tot=100;
    }
};
int Cat::tot=0;
int main()
{
    return 0;
}

/* 三 类所属内的所有函数和变量都不允许重名(函数重载的函数不重名)*/
#include<cstdio>
#include<iostream>
using namespace std;
class Cat{
private:
    static int tot;
    int tot;//编译失败  与Cat::tot冲突
public:
    static void Comemet(){
    tot=100;
    }
    static void Print(){
    cout<<tot<<endl;
    }
};
int Cat::tot=0;
int main()
{
    return 0;
}

/*四  为了不产生二义性,所属的对象能访问直接类的内容*/

类的继承

派生类和父类不是友元关系。

故父类的私有成员不能被派生类访问

且父类的保护成员可以被派生类访问

且父类的共有成员可以被类外的访问

继承访问符作用如下所示

img

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值