栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++【05】面向对象--类(成员变量、成员函数)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++【05】面向对象--类(成员变量、成员函数)

C语言(结构化程序设计)

(结构化程序设计):程序=数据结构+算法;程序由全局变量以及众多相互调用的函数组成。算法以函数的形式出现,用于对数据结构的操作。

结构化程序设计中,函数和其所操作的数据机构没有直观联系。函数难以复用。随程序规模增加程序逐渐难以理解,难以理解难以扩充。

C++(面向对象程序设计)

面向对象程序=类+类+...+类

将某类卡关事物的属性归纳出来,形成一个数据结构(可以用多个变量描述事物的属性)

抽象:将这类事物所能进行的行为也归纳出来,形成一个个函数,这些函数可以用来操作数据结构。

封装:将数据结构和操作该数据的函数”捆绑“在一起,形成一个“类”。从而使操作改数据结构的函数算法呈现出显而易见的紧密关系,这就是封装。

面向对象程序设计的基本特点:“抽象”、“封装”、“继承”、“多态”

和结构变量一样,对象所占用的内存空间的大小,等于所有成员变量的大小之和。

每个对象各有自己的存储空间。一个对象的某个成员变量被改变了,不会影响到另一个对象。

使用类的成员变量和成员函数

法1:对象名.成员名

CRectangle r1,r2;
r1.w=5;
r1.Init(5,4);

法2:指针->成员名

CRectangle r1,r2;
CRectangle* p1=&r1;
CRectangle* p2=&r2;
p1->w=5;
p2->Init(5,4);//Init作用在p2指向的对象上

法3:引用名.成员名

CRectangle r2;
CRectangle & rr=r2;
rr.w=5;
rr.Init(5,4);//rr的值变量,r2的值也变
类的成员函数和类的定义分开写
class CRectangle
{
    public:
        int w,h;
        int Area();//成员函数仅在此处声明2
        int Perimeter();
        void Init(int w_,int h_);
}

//具体函数放在类之外写
int CRectangle::Area()
{
    return w*h;
}

类的成员函数一定要通过对象或对象的指针或对象的引用才能调用

类成员的可访问范围

private:私有成员,只能在成员函数内访问

public:公有成员,可在任何地方访问

protected:保护成员

如果某个成员前面没有关键字,则缺省地被认为是私有成员。在类的成员函数内部,能够访问:1.当前对象的全部属性、函数;2.同类其他对象的全部属性、函数

class CEmployee{
    private:
        char szName[30];
    public:
        int salary;
        void setName(char* name);
        void getName(char* name);
        void averageSalary(CEmployee e1,CEmployee e2);
};

void CEmployee::setName(char* name){
    strcpy(szName,name);//ok
}

void CEmployee::getName(char* name){
    strcpy(name,szName);//ok
}

void CEmployee::averageSalary(CEmployee e1,CEmployee e2){
    cout< 

在类外,对私有成员变量的访问都是通过成员函数进行访问,不能随便访问。

成员函数的重载及参数缺省

#include 
using namespace std;
class Location{
    private:
        int x,y;
    public:
        void init(int x=0,int y=0);
        void valueX(int val){x=val;}
        int valueX(){return x;}
};

int main(){
    Location A,B;
    A.init(5);//相当于A.init(5,0)
    A.valueX(5);
    cout<

使用缺省参数需要避免函数重载的二义性,会导致错误。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号