相关文章推荐
坚强的打火机  ·  qt ...·  1 年前    · 
怕老婆的大熊猫  ·  【OpenVino ...·  2 年前    · 

1.类的定义与实现

首先我们先要弄明白.cpp文件和.h文件的区别,cpp文件是需要编译的文件,是一个独立的编译单元,而h文件不需要编译,只是用于预处理。

通常我们会在cpp文件中,完成函数的实现,在h文件中进行函数的声明。在引用时,我们只要包含其头文件即可,便可以调用相应cpp中的实现函数。因此,在类实现文件cpp中,我们必须包含定义该类的头文件。

//student.h                 (这是头文件,在此文件中进行类的声明)
class Student                            //类声明        
{ public:
void display( );                  
private:
int num; 
char name[20];     
char sex;                            
//student.cpp                            //在此文件中进行函数的定义
#include 
#include ″student.h″                     
void Student∷display( )                 
{cout<<″num:″<

        将类的定义和实现分开的好处在于可以提高编译效率,假设有一个类A被多个cpp同时包含,如果将定义与实现都放在h文件中,那么每次对A进行修改,这几个包含A的文件都必须重新编译,而如果头文件中只有声明,那么只修改A的实现不会导致这些文件的重新编译。

 2.类的声明

class 类名称

public:

     公有成员(外部接口)

private:

     私有成员 (只允许本类中的函数访问,而类外部的任何函数都不能访问)

protected:

     保护成员(与private类似,差别表现在继承与派生时)

和struct 相比,class数据成员默认私有,struct数据成员默认公有。

c++引入的核心数据型,是对数据和方法的封装,地位上与内置型(复合型)相同,只是一种自定义数据声明,又称的前向声明,即forward declaration,告诉编译器class型,但当前并不知道class具体细节,是不完全声明只能用于指针(引用)型,因为指针(引用)型字长固定,编译器知道分配多少内存空间,如何操作指针(引用)声明不能用于 C++语言可以看成是C语言的扩展和改进,相对于C语言,C++语言主要是增添了面向对象的特性。(Class)则是C++面向对象编程的实现方式。 无论是何种编程语言,进行面向对象程序设计都将是从的设计开始的。什么是呢?其实很简单,我们可以理解为一种用户自定义的数据型,似于C语言里面的结构体(struct),在本章最后我们将对比和结构体之间的异同。 首先我们来了解一下声明,先来看一个 面向对象最大的特征就是提出了和对象的概念。在以面向对象的方式开发应用程序时,将遇到的各种事物抽象为中通常包含数据和操作数据的方法,用户通过实例化对象来访问中的数据和方法。 一、定义 class/struct 名                        //头 {数据和方法的定义(可能含有型成员)};        //体 1、使用class和struct的... 声明,又称的前向声明,即forward declaration,告诉编译器class型,但当前并不知道class具体细节,是不完全声明只能用于指针(引用)型,因为指针(引用)型字长固定,编译器知道分配多少内存空间,如何操作指针(引用)声明不能用于实例对象,因为对于实例对象,编译器需要知道class具体细节以便确定分配多少内存空间,如何操作实例对象 声明这个并没有为Cat分配内存。它只是告诉编译器:Cat是什么,他包含什么数据(itsAge和itsWeight),功能是什么(Meow())、同时他还告诉编译器Cat多大,也就是说,编译器对于你创建的每个Cat必须留出多大内存空间。在这个. 对于内置型来说,有关操作被内置到编译器中。例如,整型可以进行 % 运算,而浮点型不可以。 2. C 和 C++定义型的演示 在 C++定义用户自定义型时,就必须自己提供操作自定义型的方法。付出这些劳动换来了根据实际需要定制新数据型的强大功能和灵活性。例如,自定义一个 一、头文件 1、 一般来说,头文件仅仅用于声明,相应的定义要放在对应的cpp文件中。  声明的内容一般可以是:1. 定义体;2.中的成员方法; 3. 外的函数; 4. 外的变量;5. 型。   一个文件(比如main.cpp)包含(#include)了一个头文件(比如item.h),就相当于声明了Item.h中声明的所有内容。 2、但是const常量,inline函数,static函数... class Screen; //Screen声明   这种声明有时被称作前向声明(forward declaration),它向程序中引入了名字Screen并且指明了Screen是一种型。对于型Screen来说,在它的声明之后和定义之前是一个不完全型(incomplete type),也就...