码迷,mamicode.com
首页 > 编程语言 > 详细

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

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

标签:fine   格式   解析   --   函数   操作方法   包含   返回值   error   

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

 

类是一个模板,可用类生成一系列可用的实例。例如 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++类的定义,成员函数的定义,对象的创建与使用

标签:fine   格式   解析   --   函数   操作方法   包含   返回值   error   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!