`

语法基础(一)_c++学习笔记

 
阅读更多

1. 析构函数:
    1)作用:与构造函数相对,清除类的对象,释放内存
    2)格式:~类名(),没有返回值和参数

2. 类中定义成员变量时,不能直接赋初值。

3. 类或结构体末尾加 ";" 号

4. C语言中不允许函数名重载;c++中可以

5. 注意父类和子类中都有构造函数和析构函数时的调用顺序

6. 注意子类继承父类和调用父类方法的写法


class Animal
{
public:
	Animal(int height, int weight)
	{
		cout<<"animal contruct"<<endl;
	}
};
class Fish:public Animal
{
public:
	Fish():Animal(400, 300)
	{
		cout<<"fish contruct"<<endl;
	}
};


7. 类中常量成员的一种初始化方式
class Point
{
public:
	Point():x(0),y(0)
private:
	const int x, y;
};


8. 多重继承的弊端:子类a继承父类A和B,A类和B类有同名方法funcation(),此时a类实例调用funcation()方法,编译时会报错。

9. 箭头操作符 ( -> ) 和点操作符 ( . ) 的区别:
    如果p是指针, p-> function();
    如果p是对象, p.function();

10. 虚函数和多态性


class Animal
{
public:
	void breathe()
	{
		cout<<"animal breathe"<<endl;
	}
};
class Fish:public Animal
{
public:
	void breathe()
	{
		cout<<"fish breathe"<<endl;
	}
};
void fn(Animal *pAn)
{
	pAn->breathe();
}
void main()
{
	Animal *pAn;
	Fish fash;
	pAn = &fash;
	fn(pAn);  //打印结果为 “animal breathe”
}

    1)Animal类的 breathe() 方法前添加 virtual 关键字,则打印结果为 “fish breathe”。
    2)用 virtual 关键字申明的函数叫虚函数。
    3)c++的多态性:在父类的函数前加上 virtual 关键字,在子类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。即 如果对象类型是子类,则调用子类的函数;对象类型是父类,就调用父类的函数。
    4)c++的多态性是用过迟绑定技术实现的。

11. 纯虚函数
    1)指被表明为不具体实现的虚成员函数(作用类似于java中的抽象方法)

class Animal
{
public:
	virtual void breathe() = 0;
};

    2)含有虚函数的类叫抽象类。抽象类不能实例化对象。
    3)抽象类的子类必须实现纯虚函数,否则也是抽象类,不能实例化对象。
    4)纯虚函数也可以有函数体,但此用法少见。

12. 函数的隐藏
    1)情况一:子类的函数与父类的函数完全相同(函数名和参数列表都相同),父类的函数没有使用 virtual 关键字,此时父类的函数被隐藏。
    2)情况二:子类的函数和父类的函数同名,但参数列表不同,此时不管父类的函数是否加 virtual 关键字,父类函数都被隐藏。

13. 类外定义成员函数
    1)在类的内部对成员函数作声明,而在类外定义成员函数,是c++程序设计的一种良好习惯。

class Student
{
public:
	void display(); //公用成员函数原型声明
}
void Student::display()
{
	...
}

    2)“::”,作用域限定符,用来声明函数是属于哪个类的。





分享到:
评论

相关推荐

    C++基础语法学习笔记_C++初学者学习笔记_

    刚入门学习C++,跟随b站黑马程序员学习,自己记录的一些小笔记。后面会根据学习继续慢慢更新!

    c++个人学习笔记归纳总结.rar_C++STL_X9H3_c++个人笔记总结

    一、C++语言语法基础(6) 二、数据结构和算法 三、模板和STL 四、阶段项目

    C++语法学习笔记(至六十一)

    C++语法的学习笔记,随学习进度更新,目前到(六十一)。 书籍为PDF版的:C++ Primer Plus 第6版 中文版(971页) 学习进度为:第四章4.10.3(比较数组、vector对象和array对象) 尚未学习到4.11(总结) 顺便...

    C_C++程序设计学习与实验系统

    现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习与实验软件(支持TC2/TC3、VC6三种编译器,没有使用日期...

    c++学习笔记.zip

    包含C++所有语法汇总以及插入了自己在学习过程中的一些总结和重要代码的截图,有利于更好的理解语法,文章有格式,就是不会和这篇文档一样没有突出重点,world文档中有红线加粗啥的来方便突出重点,这上面的只是我...

    C_C++集成实验与学习环境

    现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习与实验软件(支持TC2/TC3、VC6三种编译器,没有使用日期...

    c语言学习课程代码笔记_C++

    学习C语言的基础知识,如关键字,语法,数组,指针

    C_C++程序设计学习与实验系统 2010 part1

    现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习与实验软件(支持TC2/TC3、VC6三种编译器,没有使用日期...

    C++学习笔记、心得

    恩,一个半月不停来着,看书看视频学C++…… 感觉基础语法什么的都容易学,类的一些东西有些模糊…… 不过了解个大概就行了,以后多多写代码应用,自然领悟,以前迷惑的也得以解惑

    C++ Polymorphism 笔记 1

    欢迎来到我的个人C++学习笔记!这是我在学习C++编程语言过程中的记录和心得分享。我希望这些笔记能够帮助那些刚开始接触C++的新手们理解基本概念、语法规则以及编程技巧。 在这里,您会找到从基础语法到高级特性的...

    C++基础笔记.doc

    C++的基础笔记,可以下下来看一下,学习一下c++基础的语法

    C++学习笔记【原创】

    【原创】自己长久以来的C++学习记录,包含编程经验心得,基本函数语法说明等。初学者可以借鉴。

    C++ Primer Plus 学习笔记

    C++ Primer Plus学习笔记。包括基本语法以及STL的使用

    C++学习笔记 -- 大ZC++授课笔记!

    包含所有core C++ 所有语法和技术点讲解,比较形象,文档整理的很好,希望对大家学习C++有帮助

    C++学习笔记以及个人理解

    C++ 基础语法 1.1 变量 1.2 数值极限 1.3 零初始化 1.4 枚举类型 1.5 if 初始化器 1.6 switch 初始化器 1.7 三向比较运算符 1.8 属性 1.9 std::pair 1.10 std::optional 1.11 基于范围的 for 循环 基于范围的 for ...

    编译原理实践:C++实现语法分析器.rar

    本资源使用C++实现了语法分析器,内容包括C++源代码与exe...该资源的文字版信息请访问博客《编译原理实践:C++实现语法分析器(学习笔记)》(https://blog.csdn.net/weixin_40589192/article/details/106933125)。

    c++语言最详细入门0基础学习笔记.pdf

    c++语言最详细入门0基础学习笔记,只要掌握基本c语言知识就可入门,章节层次清晰,语法及示例全面地讲解

    MFC学习lesson 2-C++经典语法.rar

    MFC教程MFC学习lesson 2-C++经典语法.rar 包含课程内容、视频、PPT、笔记。内容详尽,MFC珍藏。

    Python学习笔记+入门基础教程+语法总结+进阶版合集完整版

    Python学习笔记,根据作者学习编程的经验和体会整理而成,手把手教你学Python。基于最新的Python版本,零基础带你搭建开发环境,从无到有、从易到难、层层递进,逐步走进Python的世界。既有详细的知识点介绍,又有...

    C/C++开发实战笔记

    笔者详细记录了学习C/C++过程中的心得与实战编程的注意事项与语法规则,希望通过实战中的经验帮助更多人快速动手进行编程。

Global site tag (gtag.js) - Google Analytics