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");
}
//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函数,直接用类名字调用类的成员变量,只定义了类并没有为其“分配空间”,
必须先实例化对象之后,为数据成员分配空间,才可以通过对象对类的数据成员变量进行访问、赋值等操作