首页 > 编程语言 > 详细

C++类的定义,成员函数的定义,对象的创建与使用

时间:2019-01-24 00:14:00      阅读:274      评论:0      收藏:0      [点我收藏+]

---恢复内容开始---

 

类是一个模板,可用类生成一系列可用的实例。例如 int B就是生成了一个符合int的数据B,类也是一样,使用类名就可以直接生成一个实例,

该实例中包含类中所有的数据类型和对这些数据的操作方法。

首先,创建一个类

class OBJ
{
private:
	char Name[MAX];
	int Num;
	float Price;
	float Total_price;
protected:
public:
}

该类中包含三个部分,私有部分(private)、保护部分(protected)、公有部分(public)(当然也可以都没有成为一个空类)

其中private和protected部分中的数据和内容不可以在类外通过实例直接使用

#include<iostream>
using namespace std;
#define MAX 10
class OBJ   //创建类
{
private:
    char Name[MAX];
    int Num;
    float Price;
    float Total_price;
protected:
public:
};
void main()
{
    OBJ ob;//使用类实例化ob
    ob.Num = 10;
}

如上使用ob的private成员编译无法通过,报错

test.cpp(17): error C2248: “OBJ::Num”: 无法访问 private 成员(在“OBJ”类中声明)

一般使用public方法来操作private数据,以保证数据的安全性,这同样体现了C++的封装性

#include<iostream>
using namespace std;

#define MAX 10
class OBJ
{
private:
    char Name[MAX];
    int Num;
    float Price;
    float Total_price;
protected:
public:
    void Get_obj(char name[], int num, float price)
    {
        strcpy(Name, name);
        Num = num;
        Price = price;
        Total_price = Price*Num;
    }
    char *Get_name()
    {
        return Name;
    }
    int Get_num()
    {
        return Num;
    }
    float Get_price()
    {
        return Price;
    }
    float Get_total_price()
    {
        return Price * Num;
    }
    
};

 (一个类结束后记得加上分号)

成员函数可以在类内部实现(如上所示),也可以在类外部实现,若在外部实现

其内部只需将函数声明后加上分号

其外部实现使用如下格式

返回值类型 类名 ::函数名(参数)

例如

class OBJ
{
private:
    char Name[MAX];
    int Num;
    float Price;
    float Total_price;
protected:
public:
    void Get_obj(char name[], int num, float price);
    
    
};

void OBJ::Get_obj(char name[], int num, float price)
    {
        strcpy(Name, name);
        Num = num;
        Price = price;
        Total_price = Price*Num;
 }

::叫做作用域解析符,当类的方法在类外部实现时,用来限定该方法是哪一个类的

 当一个类中有数据和方法但是没说明其属于哪部分(protected、private、protected)

则默认其为私有部分

学习过程完整代码如下

#include<iostream>
using namespace std;

#define MAX 10
class OBJ
{
private:
    char Name[MAX];
    int Num;
    float Price;
    float Total_price;
protected:
public:
    void Get_obj(char name[], int num, float price)
    {
        strcpy(Name, name);
        Num = num;
        Price = price;
        Total_price = Price*Num;
    }
    char *Get_name()
    {
        return Name;
    }
    int Get_num()
    {
        return Num;
    }
    float Get_price()
    {
        return Price;
    }
    float Get_total_price()
    {
        return Price * Num;
    }
    
};

void main()
{
    OBJ ob;
    ob.Get_obj("LLL",10,10);
    cout<<ob.Get_name()<<endl;
    cout<<ob.Get_num()<<endl;
    cout<<ob.Get_price()<<endl;
    cout<<ob.Get_total_price()<<endl;
}

 

C++类的定义,成员函数的定义,对象的创建与使用

原文:https://www.cnblogs.com/area-h-p/p/10311962.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!