ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++大学教程学习笔记1

2021-03-04 21:04:59  阅读:107  来源: 互联网

标签:教程 const 函数 int 笔记 static C++ 指针 构造函数


1,类的定义

class 类名{

public:

...

};  //分号不能少

 

2,cin提取字符串,遇到空白间隔符停止(回车,Tab,Enter)

getline(cin,保存位置),遇到回车停止

cin.getline(保存位置,长度,定界字符<默认为回车>)

 

3,构造函数

a,函数名应与类名相同;

b,无返回值(void也不能写),且不能声明为const;

c,应声明为public;

d,编译器会提供一个无形参的默认构造函数

e,对于const的类对象,C++不允许其调用类成员函数,除非成员函数本身也声明为const。

构造函数虽然为非const函数,但是可以用于初始化const对象,构造函数中也可以调用非const函数用于初始化

 

4,析构函数

~类名();

考点在于析构函数的调用顺序问题

 

5,头文件中不应包含using指令或using声明

因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件中有using声明,那么每个使用该头文件的文件都会有这个声明。

由于不经意间包含一些名字,反而可能产生始料未及的名字冲突。

 

6,函数实参的求值顺序不固定,最好先赋值给局部变量,再传入函数,确保求值顺序

7,静态局部变量,函数结束,变量仍然保留

8,引用形参,实参的别名

int & func(int &y){

  ...

}

a,调用时只使用变量名即可,可能会被误解为按值传递

b,若从函数返回某变量的引用,该变量应声明为static,否则函数结束变量销毁会形参虚悬引用

 

9,::一元的作用域分辨运算符,在同名的局部变量作用域内可以访问全局变量

总是使用::来引用全局变量有利于程序清晰

 

10,函数重载与函数模板

重载:函数名相同,形参数量或类型不同

重载有默认形参的函数要小心

模板:对于不同的数据类型有一套相同的操作

template <typename T>

T 函数名(T value1,...){...}

 

11,#include <array>

array <type,array_size>对象名

array_size需为常量或常量变量(const size_t)

 

12,指针变量用Ptr后缀指示会更清晰

对指针的间接引用应确定指针非空;

void *类型的指针不能被间接引用,因为不知道指针指向的确切字符数

 

13,使用指针的按引用传递方式

void func(int *nPtr){...}

func(&number)

核心在于int *nPtr = &number;

 

14,const

int *xPtr;

const int *xPtr;  指向const数据类型的非const指针

int *const xPtr;  指向非const数据类型的const指针

const int *const xPtr;  指向const数据类型的const指针

 

15,头文件的包含防护

若time.h未被定义,则添加如下内容

#ifndef TIME_H  (表示time.h文件)

#define TIME_H

...

#endif

 

16,组成,当类的数据成员为另一个类时,用到复制构造函数,格外注意构造函数和析构函数的调用顺序

 

17,static类成员,该变量或函数为整个类范围意义上的共享信息或服务

若成员函数不访问非static数据或非static成员函数,则应声明为static

如,public static的成员函数,private static的数据成员

即使没有类的对象存在,也可以使用"类名::static成员名"来访问或使用

static成员函数中使用this是一个编译错误

static成员函数声明为const是一个编译错误,因为static独立于类的任何对象且进行操作

 

18,类的定义在.h文件中,用户可以访问

类成员函数的实现在.cpp文件中,对用户透明

static应在.h文件中声明,不能在.cpp文件中声明

标签:教程,const,函数,int,笔记,static,C++,指针,构造函数
来源: https://www.cnblogs.com/zyf-f/p/14482956.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有