C++编程思想 第1卷 第5章 隐藏实现 类

访问哦控制通常是指实现细节的隐藏
将函数包含到一个结构类,为封装产生一种带数据和操作的数据类型
访问控制在该数据类型之内确定边界
访问控制的原因 是要决定哪些客户程序员可以用,哪些客户程序员不能用
我们建立结构内部的机制,不担心客户程序员会用内部的数据
第二个原因是将具体实现和接口分离开来
如果结构在一些列的程序中,客户程序员只能对public接口发送消息

封装和访问控制可以防止一些情况发生,C语言做不到防止一些情况发生
结构是由对象组成的类,就像人们可以描述鸟或鱼组成的类一样
任何属于该类的对象都将共享这些特征和行为

最初的面向对象编程语言Simula-67中,关键字class被用来描述一个新的
数据类型,这启发了Stroustrup在C++中选用同样的关键字

class中的成员默认为private
struct中的成员默认为public
 

//: C05:Class.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Similarity of struct and class

struct A {
private:
  int i, j, k;
public:
  int f();
  void g();
};

int A::f() { 
  return i + j + k; 
}

void A::g() { 
  i = j = k = 0; 
}

// Identical results are produced with:

class B {
  int i, j, k;
public:
  int f();
  void g();
};

int B::f() { 
  return i + j + k; 
}

void B::g() { 
  i = j = k = 0; 
} 

int main() {
  A a;
  B b;
  a.f(); a.g();
  b.f(); b.g();
} ///:~

 

class 是面向对象编程的基本概念,是一个关键字
类带来的变化重要
为什么要在类中声明成员是要让编译器知道对象有多大


无输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值