访问哦控制通常是指实现细节的隐藏
将函数包含到一个结构类,为封装产生一种带数据和操作的数据类型
访问控制在该数据类型之内确定边界
访问控制的原因 是要决定哪些客户程序员可以用,哪些客户程序员不能用
我们建立结构内部的机制,不担心客户程序员会用内部的数据
第二个原因是将具体实现和接口分离开来
如果结构在一些列的程序中,客户程序员只能对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 是面向对象编程的基本概念,是一个关键字
类带来的变化重要
为什么要在类中声明成员是要让编译器知道对象有多大
无输出