C++总结

 经过一段学习,我将对c++做一段知识的总结。


目录

前言

一、c++关键字:<名称,作用>

二、类和对象:

1.类的结构:

2.类的对象声明,引用

3.类的构造函数:

4.析构函数

5.拷贝构造函数

6.自引用指针this

7.友元函数

三.运算符重载

四.继承与多态

继承:

 多态


前言

C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计

一、c++关键字:<名称,作用>

const常类型常类型的变量或对象的值,不可修改。
static静态类型在c++中,修饰类成员数据,则该类所有对象共享这个成员数据。
friend友元给类的外部提供一个访问类的私有成员的接口


二、类和对象:

1.类的结构:

class 类名 {

public: //共有 
     成员数据; 
     成员函数; 

private: //私有
         …… ;

protected://保护 
          …… ; 
};

2.类的对象声明,引用

class person
{
     string name;
     int age;
   void show()
    {
        cout<<"hello"<<endl;
    }
};
person p1;//声明
p1.show();//引用类函数show()

3.类的构造函数:

构造函数是一种特殊的成员函数,用于为对象分配空间,初始化。

构造函数名字与类名相同。

可有参或无参,

没有返回值。

不需要用户调用,建立对象时自动执行。

class Person
{
public:
	string name;
	string sex;
	Person();//构造函数,无参
	Person(string,string,int );//构造函数,有参
	void print();//类的成员函数
private:
		int age;	
};

4.析构函数

析构函数一种特殊的成员函数。

用于撤销对象时,如释放对象的内存空间等。

析构函数没有参数和返回值,也不能被重载。

当撤销对象时,编译系统会自动调用析构函数。
 

class Person
{
public:
	string name;
	string sex;
	Person();//构造函数,无参
	~Person();//析构函数
	
};

5.拷贝构造函数

拷贝构造函数是一种特殊的构造函数。

作用:在建立一个新对象时,用一个已存在的对象初始化新对象。

只有一个参数,没有返回值。

每个类必须有一个拷贝构造函数,可自定义。

class Person
{
public:
	string name;
	string sex;
	
	Person(string,string,int );//构造函数,有参
	
	Person(const Person &p);//拷贝构造函数;
	
};

调用形式:
    类名 对象2(对象1);
    类名 对象2 = 对象1;

Person p1;//创建一个对象
person p2(p1); //拷贝对象p1
person p3=p1;  //拷贝对象p1

6.自引用指针this

在c++中,每一个对象都能通过this指针来访问自己的地址

当成员函数中某个变量与成员变量名字相同,则使用this关键字来表示成员变量。

友元函数没有this指针。

this关键字只能用于成员函数,不能用于被static修饰的函数(静态函数)。

class Person
{
public:
	string name;
	string sex;
	
	Person(string,string,int );//构造函数,有参

	void set(string name,string sex);//类的成员函数
};

void person::set(string name,string sex)
{
    this->name=name;
    this->sex=sex;
}

7.友元函数

友元函数既可以是不属于任何类的非成员函数,也可以是另一个类的成员函数。

友元函数不是当前类的成员函数,但它可以访问该类的所有成员,包括私有成员、保护成员和公有成员。

一个普通函数可以是多个类的友元函数。

一个类的成员函数也可以是另一个类的友元。

整个类也可以是另一个类的友元,该友元也可以称作为友类。友类的每个成员函数都可以访问另一个类的所有成员。
 

class Person
{
public:
	string name;
	string sex;

	friend void set(Person& p);//友元函数

private:
		int age;
};

void set(Person& p)
{
	cout << "name=" << p.age << endl;
}

三.运算符重载

关键字:operator
声明格式:
    返回值类型(可以是基本的数据类型&自定义的数据类型) operator  被重载的运算符 (参数列表);
定义格式:
    返回值类型(可以是基本的数据类型&自定义的数据类型) operator  被重载的运算符 (参数列表)
    {
        //函数体
    }

#include<iostream>
using namespace std;

class Complex {
public :
    int a;
	int b;
	Complex(int a, int b)
	{
		this->a = a;
		this->b = b;
	}
};

Complex operator+(Complex& p,Complex &q)
{
	Complex data3(0,0);
	data3.a = p.a + q.a;
	data3.b = p.b + q.b;
	return data3;
}

四.继承与多态

继承

新类可以从一个或多个已有类中,继承成员函数和数据成员,而且可以重新定义或加进新的数据和函数。已有类称为基类父类,新建的类称为派生类子类

关键字:public

继承权限:public,private,protected

#pragma once
#include<iostream>
using namespace std;

class Animal
{
public :
	inline Animal()
	{
		cout << "Animal" << endl;
	}
};

class Dog :public Animal//继承Animal
{
public:
	 inline Dog()
	 {
		cout << "Dog" << endl;
	}
};

 多态

       多态: 多种形态(多种方法),“一种接口,多种方法”,一种接口,指的是父类接口,多种方法表示父类中有方法并且子类中也有相同的方法(方法相同,实现的内容不同)构成多态性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值