C++类的定义与对象创建

C++类内成员变量默认private,外部对象不能直接访问

#include
using namespace std;
#include  /*在stdlib.h头文件中定义了system()函数*/

class CGoods
{
//公有public、私有private、保护protected是访问限定符
public:   //类内不设置访问说明时,默认private
	char  Name[21];
	int   Amount;
	float Price;
	float Total_value;
};

void main()
{
	CGoods cd;   //对象(类定义的变量),类实例化出对象
	//类的对象能在外部直接访问类内的公有成员
	strcpy(cd.Name,"C++");
	cd.Amount=10;   //cd是对象,.是成员访问符
	cd.Price=12;
	cd.Total_value=cd.Amount*cd.Price;
	system("PAUSE");  //system函数可以使命令行窗口运行后不立即退出  
}


C++类的公有函数的实现有两种:1)在类的内部实现 2)在类外实现

并且类的对象可以通过公有函数访问类的私有成员变量

#include
using namespace std;
#include  /*在stdlib.h头文件中定义了system()函数*/
class CGoods
{
private:
	char  Name[21];
	int   Amount;
	float Price;
	float Total_value;
public:   //公有方法针对私有数据进行操作
	//C++类的公有函数的实现:1)在类的内部实现(内联函数)
	void RegisterGoods(char name[],int amount,float price)   //输入数据
	{
		strcpy(Name,name);   //拷贝名字
		Amount=amount;
		Price=price;
	}
	void CountTotal(void)   //计算商品总价值
	{
		Total_value=Price*Amount;
	}
	void GetName(char name[])   //读取商品名
	{
		strcpy(name,Name);
	}
	int GetAmount(void)   //读取商品数量
	{
		return Amount;
	}
	float GetPrice(void)   //读取商品单价
	{
		return Price;
	}
	float GetTotal_value(void)
	{
		return Total_value;
	}
};

void main()
{
	CGoods c1,c2;   
	c1.RegisterGoods("C++",10,45);
	c2.RegisterGoods("Java",5,43);
	cout<<"c1 amount:"<

#include
using namespace std;
#include  /*在stdlib.h头文件中定义了system()函数*/

class CGoods
{
private:
	char  Name[21];
	int   Amount;
	float Price;
	float Total_value;
public: //公有方法针对私有数据进行操作
	//C++类的公有函数的实现:2)在类外实现
	void RegisterGoods(char[],int,float);   //输入数据
	void CountTotal(void);   //计算商品总价值
	void GetName(char name[]);   //读取商品名
	int GetAmount(void);   //读取商品数量
	float GetPrice(void);   //读取商品单价
	float GetTotal_value(void);
};

void CGoods::RegisterGoods(char name[],int amount,float price)   
//::是类的作用域解析符,说明定义的函数是类的成员函数,而不是全局函数
{
	strcpy(Name,name);
	Amount=amount;
	Price=price;
}

void main()
{
	CGoods c1;
	c1.RegisterGoods("C++",10,45);
	system("PAUSE");
}

此外,为了隐藏类内方法的实现,想把类的方法做成库文件

C++类的定义与对象创建_第1张图片

//classfunction.h内容
#include
using namespace std;

//头文件内放类的声明
class CGoods
{
private:
	char  Name[21];
	int   Amount;
	float Price;
	float Total_value;
public:   //公有方法针对私有数据进行操作
	//C++类的公有函数的实现:2)在类外实现
	void RegisterGoods(char[],int,float);   //输入数据
	void CountTotal(void);   //计算商品总价值
	void GetName(char name[]);   //读取商品名
	int GetAmount(void);   //读取商品数量
	float GetPrice(void);   //读取商品单价
	float GetTotal_value(void);
};


//classfunction.cpp内容
#include  /*在stdlib.h头文件中定义了system()函数*/
#include"classfunction.h"   //引入头文件
//源文件对类的实现
//返回值 类名::函数名(参数)
void CGoods::RegisterGoods(char name[],int amount,float price)   
//::是类的作用域解析符,说明定义的函数是类的成员函数,而不是全局函数
{
	strcpy(Name,name);
	Amount=amount;
	Price=price;
}
void CGoods::CountTotal(void)
{
	Total_value;
}
void CGoods::GetName(char name[])
{
	strcpy(name,Name);
}
int CGoods::GetAmount(void)
{
	return Amount;
}
float CGoods::GetPrice(void)
{
	return Price;
}
float CGoods::GetTotal_value(void)
{
	return Total_value;
}

//main内容
#include  /*在stdlib.h头文件中定义了system()函数*/
#include"classfunction.h"   //引入头文件
void main()
{
	CGoods c1;
	c1.RegisterGoods("C++",10,45);
	system("PAUSE");
}


不能通过main函数,直接用类名字调用类的成员变量,只定义了类并没有为其“分配空间”,

必须先实例化对象之后,为数据成员分配空间,才可以通过对象对类的数据成员变量进行访问、赋值等操作


你可能感兴趣的:(C++)