C++学习笔记——面向对象

一、类的声明
class Student //声明类类型
   {
private : //声明以下部分为私有的
   int num;
   char name[20];
   char sex;
public : //声明以下部分为公用的
   void display( )
   {
      cout<<"num:"<<num<<endl;
      cout<<"name:"<<name<<endl;
      cout<<"sex:"<<sex<<endl;
   }
};
Student stud1,stud2; //定义了两个Student类的对象

    private和public称为成员访问限定符(member access specifier)。除了private和public之外,还有一种成员访问限定符protected(受保护的),用protected声明的成员称为受保护的成员,它不能被类外访问(这点与私有成员类似),但可以被派生类的成员函数访问。如果在类的定义中既不指定private,也不指定public,则系统就默认为是私有的。

二、类和结构体类型的异同

    用struct声明的结构体类型实际上也就是类。用struct声明的类,如果对其成员不作private或public的声明,系统将其默认为public。

三、成员函数

1.在类外定义成员函数

class Student
{
public :
   void display( ); //公用成员函数原型声明
private :
   int num;
   string name;
   char sex;
   //以上3行是私有数据成员
};
void Student::display( )//在类外定义display类函数
{
   cout<<"num:"<<num<<endl;
   cout<<"name:"<<name<<endl;
   cout<<"sex:"<<sex<<endl;
}
Student stud1,stud2; //定义两个类对象


注:成员函数在类外定义时,必须在函数名前面加上类名,予以限定(qualifed),” :: “是作用域限定符(field qualifier)或称作用域运算符,用它声明函数是属于哪个类的。如果在作用域运算符“::”的前面没有类名,或者函数名前面既无类名又无作用域运算符“::”,则表示这个函数是是全局函数。

2.inline 成员函数
    (1)为了减少时间开销,如果在类体中定义的成员函数中不包括循环等控制结构,C++系统会自动将它们作为内置(inline)函数来处理。
    (2)如果成员函数不在类体内定义,而在类体外定义,系统并不把它默认为内置(inline )函数,调用这些成员函数的过程和调用一般函数的过程是相同的。如果想将这些成员函数指定为内置函数,应当用inline作显式声明。
    注:如果在类体外定义inline函数,则必须将类定义和成员函数的定义都放在同一个头文件中(或者写在同一个源文件中),否则编译时无法进行置换(将函数代码的拷贝嵌入到函数调用点)

三、成员函数存储方式

(1)一个对象所占的空间大小只取决于该对象中数据成员所占的空间,而与成员函数无关。
(2)C++专门设立了一个名为this的指针,用来指向不同的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值