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

C++学习笔记(十四):public、private、struct、class

时间:2015-04-03 17:24:55      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:   class   struct   

1、关于public和private的区别

在C++中,为了控制类的成员的访问和封装(隐藏),常使用public和private说明符来对类的成员进行封装。

 

定义在public说明符之后的成员在整个程序中可以被访问,public成员定义类的接口

定义在private说明符之后的成员可以被类的成员函数访问,但是不能被使用该类的代码访问,private部分封装(隐藏)了类的实现细节。

 

例如:

struct  Sales_data{

public:

Sales_data() = default;   //采用默认构造函数

Sales_data(const string &s, unsigned int n,double p):

   bookNo(s),units_sold(n),revenue(p*n){ }

//构造函数初始值列表

std:string isbn()  const{ return bookNo;}

private:

std:string bookNo;

ungsined units_sold = 0;

double revenue = 0.0;

};

在上面的类中,紧跟在public后面的构造函数和部分成员函数是可以在整个程序内被访问的。而private后面紧跟着的则不能被整个程序访问。

 

注意:一个类可以包含0个或者多个访问说明符,而且对于某个访问说明符能出现多少次也没有严格限定。每个访问说明符指定了接下来的成员访问级别,其有效范围直到出现下一个访问说明符或者到达类尾为止。


2、关于class和struct关键字的区别

在上面的类的定义中,我们用的是struct关键字,实际上这里的struct替换成class也是完全可以的。

在C++中,struct和class关键字来定义一个类都是可以的,唯一的区别在与,struct和class的默认访问权限不太一样


可以在它的第一个访问说明符之前定义成员,这中成员的访问权限就取决于类的定义方式,即是使用struct还是使用class来定义一个类。


若struct关键字,则定义在说明符之前的成员是public

若class关键字,则定义在说明符之前的成员是private

 

例如:

struct  Sales_data{

Sales_data() = default;   //采用默认构造函数

Sales_data(const string &s, unsigned int n,double p):

   bookNo(s),units_sold(n),revenue(p*n){ }

//构造函数初始值列表

std:string isbn()  const{ return bookNo;}

std:string bookNo;

ungsined units_sold = 0;

double revenue = 0.0;

};  //这里的类中的所有成员都是public成员


 class Sales_data{

Sales_data() = default;   //采用默认构造函数

Sales_data(const string &s, unsigned int n,double p):

   bookNo(s),units_sold(n),revenue(p*n){ }

//构造函数初始值列表

std:string isbn()  const{ return bookNo;}

std:string bookNo;

ungsined units_sold = 0;

double revenue = 0.0;

};  //这里的类中的所有成员都是class成员

C++学习笔记(十四):public、private、struct、class

标签:   class   struct   

原文地址:http://blog.csdn.net/autocyz/article/details/44856997

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