错题:
- 在函数调用时,如某一默认参数要指明一个特定值,则有其之前的所有参数都必须赋值。
- 一个函数功能不太复杂,但要求被频繁调用,选用内联函数。
- 建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序为基类、对象成员所属类、自己所属类的构造函数。
- 类的私有成员可以在本类的成员函数中访问。
- 一个类可以包含析构函数的个数是1个。
- 类本身的成员函数不仅可以访问本身的私有成员,其他成员也都可以访问。
- 设类A将其它类对象作为成员,则建立A类对象时,成员构造函数先执行。
- 静态成员是类的成员、静态成员不能是虚函数、静态成员函数不能直接访问非静态成员,在创建对象前,静态成员可能就已经存在了。
- 友元函数是函数、但友元函数是在类外部函数声明的,所以他不是本类的成员函数、友元函数可以访问本类的私有成员和保护成员。
- 可以在派生类的成员函数中访问基类的非私有成员,并能通过派生类的对象直接访问基类公有成员的派生方式是public。
- 用派生类的对象去初始化基类对象时,不会调用拷贝构造函数。将类的一个对象赋值给该类的另一个对象时、函数的形参是类的对象,调用函数进行形参和实参结合时、函数的返回值是类的对象,函数执行返回调用者时会用到拷贝构造函数。
- 实现运行时多态的机制是虚函数。
- 运算符.不能重载。
- 输出结果:f+g0+
class Base{
public:
virtual void f(){cout<<"f0+";}
void g(){cout<<"g0+";}
};
class Derived:public Base{
public:
void f(){cout<<"f+";}
void g(){cout<<"g+";}
};
void main(){
Derived d;
Base *p=&d;
p->f();
p->g();
}
x.GetValue() int AA::a()
point[3] 输出3
- obj++被C++编译器解释为operator++(obj,0)
- 采用重载函数的目的在于减少空间。
- private派生时基类中public/protected成员在派生类中改变成private类。
- 设有如下的定义及对象、指针变量等说明:pa=&b1,pb=&c1,pa=&c1是正确的,pc=&a1不对。
class A{};
class B:public A{};
class C:public B{};
A a1,*pa;
B b1,*pb;
C c1,*pc;
- 类和对象之间的关系:
类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。
对象是指现实世界中各种各样的实体。它可以指具体的事物也可以指抽象的事物。
类和对象之间的关系是抽象和具体的关系;
对象是类的实例,一个对象必须属于一个已知类;
类是具有共同行为的若干对象的统一描述体。 - 有关构造函数:
可以省略不写;
必须与类同名;
可以对类中的成员进行初始化;
不一定要有返回值。 - 在重载一个运算符时,如果参数表中有一个参数,这说明该运算符是二元成员运算符或一元友元运算符。
p->SetValue(5)与my.SetValue(5)
等价。- C++常量关键字 const ,定义虚函数的关键字是virtual。
- 类的继承是指子类继承基类的成员数据和成员函数。
- 不同对象可以调用相同名称的函数,但可导致完全不同行为的现象称为多态性。
- C++的流库预定义了4个流,它们是cin、cout、cerr、clog。
- C++中多态性包括两种多态性:静态多态性和多态多态性。前者是通过函数重载实现的,后者是通过虚函数和多态联编实现的。
- 在继承机制下,当对象产生时,编译系统先执行基类的构造函数,然后再执行对象成员的构造函数,最后才执行派生类的构造函数。
- 抽象类只能作为基类使用,而不能声明它的对象。
- 进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参个数或类型必须不同。
- 通过一个常对象只能调用它的常成员函数,不能调用其他成员函数。
- 拷贝构造函数的形参必须是本对象的引用。
- 调用构造函数及析构函数销毁函数的过程类似于栈的先进后出。
- Virtual ~Base{ };//虚函数实现多态性。
class Base{
public:
virtual~Base{cout<<"Destructor Base"<<endl;}
};
class Derived:public Base{
public:
~Derived(){cout<<"Destructdor Derived"<<endl;}
};
int main(){
Base *pBase = new Derived;
delete pBase;
return 0;
}
- 什么是友元类?
首先:类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或者函数成为它的友元。
然后:如果类想把一个函数作为它的友元,只需要增加一条以friend关键字开始的函数声明语句即可。
其次:友元函数或者友元类是主要作用就是通过调用友元类或者友元函数来访问本类的私有成员。
最后:友元接口指非本类或者非本类的成员作为接口。 - 多重继承与多继承的区别?
多继承是指一个子类继承多个父类。多继承对父类的个数没有限制,继承方式可以是公共继承
、保护继承和私有继承。
多重继承与多继承不同,当B类从A类派生,C类从B类派生,此时称为多重继承。 - C++中的private的成员变量可以由哪些函数访问?
private只能由本类中的成员函数或者友元函数来访问。