自己学习中记录的错题和要点
建议使用幕布原贴,有图片有层级格式!!!
2021年12月25日22:51:04,已完结,祝大家都能上岸!!!
幕布原贴:点击 密码: 918
正文
出单酸罐,裸条福豆(运算符优先级助记)
1.自身类对象不能作为类的成员
2.delete运算符不能对一个指针使用多次
3. 析构函数的作用是在对象被撤销时收回先前分配的内存空间。
4.× 利用类的成员函数的指针可以访问类中的任何一个成员函数
C++程序的基本单位/基本模块是函数
逗号表达式
求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。如,逗号表达式
a=35, a4
赋值运算符的优先级别高于逗号运算符, 因此应先求解a=35(也就是把“a=35”作为一个表达式)。经计算和赋值后得到a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。
x++只能作为右值,而++x既可作为左值又可作为右值
常量必须在定义的时候给出初值
数组初值
全局数组,未初始化时,默认值都是 0;
局部数组,未初始化时,默认值为随机的不确定的值;
局部数组,初始化一部分时,未初始化的部分默认值为 0;
用户可以重新定义标准库函数,若如此,函数会失去原有的含义
设置参数的默认值时,应该从右边开始
指针长度为4,在64位操作系统下那么就都是8了,而和char占用1字节还是100字节无关,指针的范围只和机器字和系统有关。
赋值(=)、下标([])、调用(())和成员访问箭头(->)运算符必须重载为成员(函数)
基类指针可以指向派生类对象,而派生类指针则不可以指向基类对象
一旦自定义了构造函数,系统便不再提供缺省的构造函数
虚函数只有在有继承的情况时才会存在
注意一个指针变量作为函数参数后值会发生变化,且若第二次调用的参数为(p+1),则第一个字符不变
填空题根据函数输出值的不同,可能要给构造函数设立初值
while循环中的i++在循环开始的时候就执行
程序输出题:
#include
using namespace std;
class Base
{
public:
Base(int i) { cout << i; }
~Base () { }
};
class Base1: virtual public Base
{
public:
Base1(int i, int j=0) : Base(j) { cout << i; }
~Base1() {}
};
class Base2: virtual public Base
{
public:
Base2(int i, int j=0) : Base(j) { cout << i; }
~Base2() {}
};
class Derived : public Base2, public Base1
{
public:
Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1©,
Base2(d), Base(a)
{ cout << b; }
private:
Base2 mem2;
Base1 mem1;
};
void main() { Derived objD (1, 2, 3, 4); }
答案:14302012
B 字符串遇到\0截止,\代表一个字符’’
B 有一个为double则为double
浮点数的默认精度是:6位
D '\0’表示字符串结束,和换行无关
if中的表达式可以是任何语句
fill默认是右对齐(即左填充)
C
A 编译系统也不知道运行时需要耗费多少时间,因此通过长短判断
类的成员函数的参数表在声明时默认参数位于参数表右部,如int fn(int a,int b=0,int c=5)之类的,但在它定义的时候则不能加默认参数,只能写int fn(int a,int b,int c);
C
关键词static的作用
1. 保持变量在函数被调用过程中维持原值不变
2. 使用 static声明的模块层变量能被模块内所有函数访问使用
3. static声明的模块层变量不能被模块外其他函数访问