C++基本概念

一个C++工程通常会包含头文件 <iostream>

using namespace std; 告诉编译器使用 std 命名空间

由于C语言和C++有不少共同点,目前就只有面对对象部分值得记录:

用class修饰符创建一个类:

class 类名

{

  public/private/protected  //访问修饰符

}

 

定义成员函数

数据类型 类名:函数名1(参数)

{

}

main()

{

  //通过类名定义对象:

 

  类名 对象名1;

 

  类名 对象名2;

 

  //调用函数

  对象名1.函数名1();

}

ddd

1、类访问修饰符

public:公有成员,在类的外部是可以访问的,可以不用任何成员函数设置和访问公有成员。

private:私有成员,在类的外部是不可访问的,只有该类的成员函数和友元函数可以访问。

protected:受保护成员,在类的外部不可访问,但可以被派生类访问

2继承

public继承:基类public、private和protected成员在派生类中不变。

private继承:基类public、private和protected成员在派生类中变为private。

protected继承:基类public、private和protected成员在派生类中分别变成protected、private和protected。

无论哪种继承方法,基类private成员都是不可见的。

3构造函数和析构函数

1 构造函数

一种特殊的成员函数,在每次类创建新的对象时执行,其函数名与类名是完全相同的,没有返回值,可以带有参数,用于对类中成员变量的初始化。

2 析构函数

一种特殊的成员函数,在每次删除所创建的对象时执行,其函数名与类的名称完全相同,没有返回值,不能带有参数,用于跳出程序前释放资源。

3 拷贝构造函数

 一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:

  • 通过使用另一个同类型的对象来初始化新创建的对象。

  • 复制对象把它作为参数传递给函数。(*)

  • 复制对象,并从函数返回这个对象。(*)

class Line
{
public:
Line(int len);         // 简单的构造函数
Line(const Line& obj);   // 拷贝构造函数
~Line();/          //析构函数
}

4友元

友元可以是一个类,也可以是一个函数,用关键词friend定义,其特点是可以访问私有成员和保护成员。

5内联函数

C++内联函数通常与类一起使用,定义在类里的默认是内联函数。如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方,以此减少调用函数过程中消耗的资源。

也就是用空间换时间的一种思想。同时,内联函数不宜过长,否则会占用大量代码空间,得不偿失。

6this指针

 

每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。

 

友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针。

 

7指向类的指针

类也可以有指针,就像结构体那样

8静态成员

用static关键字把类成员定义为静态,当声明类成员为静态时,无论创建多少个类的对象,静态成员只有一个副本

静态成员在所有创建的副本中是共享的,且只能在类的外部进行初始化,如果没有初始化,在创建第一个对象时初始化为0。

如果把函数成员声明为静态的,就可以把函数与类的任何特定对象独立开来。静态成员函数即使在类对象不存在的情况下也能被调用,静态函数只要使用类名加范围解析运算符 :: 就可以访问。

静态成员函数只能访问静态成员数据、其他静态成员函数和类外部的其他函数。

静态成员函数不能访问类的 this 指针。

 

posted @ 2022-01-29 15:17  一只吃水饺的胡桃夹子  阅读(62)  评论(0编辑  收藏  举报