封装(class 类)( 成员=属性(变量)+行为(函数) ),访问权限(公共,保护,私有),跨文件定义类

1.封装的意义

        语法: class 类名{ 访问权限: 属性(变量) / 行为(函数) };

        1.将属性和行为作为一个整体,表现生活中的事物
        2.将属性和行为加以权限控制

类中的属性和行为,我们统一称为 成员

属性 也可称为  成员属性 成员变量

行为 也可称为  成员函数 成员方法

2.类中的访问权限

公共权限  public     成员 类内可以访问  类外可以访问
保护权限  protected  成员 类内可以访问  类外不可以访问  儿子可以访问
私有权限  private    成员 类内可以访问  类外不可以访问  儿子不可以访问

3.struct和class区别 

在C++中 struct和class唯一的区别就在于 默认的访问权限不同

  • struct 默认权限为公共
  • class 默认权限为私有
class Person
{
	//姓名  公共权限
public:
	string m_Name;

	//汽车  保护权限
protected:
	string m_Car;

	//银行卡密码  私有权限
private:
	int m_Password;

public:
	void func()      //成员函数
	{
		m_Name = "张三";
		m_Car = "拖拉机";
		m_Password = 123456;
	}
};

int main() {

	Person p;
	p.m_Name = "李四";
	//p.m_Car = "奔驰";  //保护权限类外访问不到
	//p.m_Password = 123; //私有权限类外访问不到

	system("pause");

	return 0;
}

类中的成员函数也可以在类中声明,在类外定义 

class Person
{
public:
	void func();      //成员函数在类中声明
};

void Person::func()      //成员函数在类外定义  Person::func()表示类作用域下的func函数
{
	m_Name = "张三";
	m_Car = "拖拉机";
	m_Password = 123456;
}

4.跨文件定义类

源文件1:Preson.cpp       源文件2:main.cpp       头文件:Person.h

头文件: Person.h 

写类中的属性,函数,但函数不写具体实现,在源文件Preson.cpp中写

#pragma once

class Data             
{
private:
    int mA;
public:
    void setA(int a);
    int getA(void);
};

 源文件1:Preson.cpp

写类中函数的具体实现,注意引入头文件#include "data.h"

#include "Person.h"

void Data::setA(int a)
{
    mA=a;
}
int Data::getA()
{
    return mA;
}

 源文件2:main.cpp

在main函数中就可以直接使用类了,注意引入头文件 #include "Person.h"

#include <iostream>
#include "Person.h"
using namespace std;

int main(int argc, char *argv[])
{
    Data ob;
    ob.setA(100);
    cout<<"mA = "<<ob.getA()<<endl;//mA = 100
    return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
商品是一种用于描述商品的抽象数据型,它可以包含多个成员变量,如商品名称、价格、库存等。为了保证数据的安全性和封装性,这些成员变量通常会被封装私有部分,只能通过的公有方法来访问和修改。 以下是一个简单的商品定义示例: ``` class Commodity { private: string name; // 商品名称 double price; // 商品价格 int stock; // 商品库存 public: // 构造函数 Commodity(string n, double p, int s) { name = n; price = p; stock = s; } // 获取商品名称 string getName() { return name; } // 获取商品价格 double getPrice() { return price; } // 获取商品库存 int getStock() { return stock; } // 修改商品库存 void setStock(int s) { stock = s; } }; ``` 可以看到,这个商品包含了三个私有成员变量:商品名称、价格和库存。它还定义了一个构造函数和四个公有方法,分别用于创建对象、获取商品名称、获取商品价格、获取商品库存和修改商品库存。 要输出一个商品对象,可以使用以下代码: ``` Commodity c("苹果", 5.0, 10); cout << "商品名称:" << c.getName() << endl; cout << "商品价格:" << c.getPrice() << endl; cout << "商品库存:" << c.getStock() << endl; ``` 这段代码首先创建了一个名为c的商品对象,然后通过调用对象的公有方法来获取和输出对象的成员变量。输出结果如下: ``` 商品名称:苹果 商品价格:5 商品库存:10 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值