平时用了C++那么多年,真到了地头发现还是很容易弄糊涂的,以下的程序代码试一下自己能不能判断正确.
// testvirtual.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class Base
{
public:
Base(){cout<<"Base"<<endl;show();}
virtual ~Base(){cout<<"~Base"<<endl;}
virtual void show(){ cout<<"Base()::show"<<endl;}
};
class A:public Base
{
public:
A(){cout<<"A"<<endl;show();}
~A(){cout<<"~A"<<endl;}
void show(){cout<<"A()::show"<<endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{
{
Base* p = new A();
delete p;
}
return 0;
}
分享到:
相关推荐
C++是一种强大的面向对象的编程语言,它包含了丰富的特性,如类、构造函数、析构函数、重载运算符、继承、多态等。以下是对题目中涉及的一些知识点的详细解释: 1. **类和成员访问权限**: - 类的定义由说明部分...
22. C++中的析构函数(destructor)主要用于( B )。 A. 创建对象 B. 销毁对象 C. 初始化对象 D. 修改对象属性 23. C++中,友元(friend)可以访问类的( A )。 A. 私有和保护成员 B. 公有成员 C. 静态...
2. 构造函数与析构函数:构造函数用于在创建对象时初始化对象的成员,一个类只能有一个构造函数,但可以有多个重载版本。析构函数是在对象生命周期结束时自动调用的特殊成员函数,用于清理资源,且无返回类型,也不...
3. **析构函数**:析构函数是一个特殊类型的成员函数,它在对象生命周期结束时自动调用,用于执行清理工作。每个类最多只能有一个析构函数。 4. **友元关系**:友元是非成员函数或另一个类,它可以访问另一个类的...
18. **构造函数与析构函数**:构造函数用于初始化对象,析构函数用于清理对象资源。 19. **Const**:常量成员函数确保不会修改对象的状态。 20. **Static**:静态成员属于类而非对象,所有对象共享同一份静态成员...
面向对象技术是现代软件开发中不可或...复习时,应重点掌握上述知识点,特别是类、对象、指针、引用、构造与析构函数、继承、多态以及静态成员的使用。通过理解这些概念,你将能够更好地理解和编写面向对象的C++代码。
3. 析构函数:每个类至多有一个析构函数,用于在对象生命周期结束时进行清理工作。析构函数没有返回类型,且默认是虚函数,以便于在多态性中正确地销毁对象。 4. 友元关系:友元是C++中的一种机制,允许一个类访问...
19. **构造函数与析构函数**:每个类可以有多个构造函数,但只能有一个析构函数。析构函数没有返回类型。 20. **常成员函数**:常成员函数不能修改对象的状态,其声明格式为 `void print() const;` 21. **继承与...
每个类只有一个析构函数,且无返回类型。 7. 构造函数:构造函数在创建对象时自动调用,用于初始化对象的状态。 8. 友元:友元机制允许一个类访问另一个类的私有和保护成员,以提高效率,但会牺牲封装性。 9. 虚...
析构函数用于清理对象,它的名字与类名相同,前缀一个波浪线,可以指定其返回类型,第十题正确。析构函数的函数体不一定是空的,它通常用于资源的释放,第十一题描述有误。 C++支持多重继承,即一个类可以从多个...
6. 析构函数:析构函数在对象生命周期结束时(对象销毁时)自动调用,它没有返回类型,且每个类只有一个析构函数。 7. 构造函数:构造函数在创建对象时执行,用于初始化对象的数据成员。 8. 友元:友元不是类的...
2. **构造函数与析构函数**:构造函数是类的一个特殊函数,用于初始化新创建的对象。析构函数则在对象生命周期结束时自动调用,用于清理对象占用的资源。这两种函数都是非虚函数,且没有返回值。 3. **继承与多态**...
- 构造函数与析构函数:了解它们的作用,以及如何自定义构造和析构过程。 - 成员函数:包括普通成员函数、静态成员函数和友元函数。 - 继承:理解单一继承、多重继承和抽象类的概念。 - 多态性:了解虚函数和...
理解类的定义、成员变量和成员函数,以及构造函数、析构函数、拷贝构造函数的作用。了解对象的创建、访问和操作。 6. **继承与多态**:掌握单一继承和多重继承,理解派生类和基类的关系,以及虚函数和纯虚函数在...
- “f1()”可能是类的构造函数或成员函数,而没有显示析构函数的描述,但在C++中,当对象生命周期结束时,如果没有显式定义析构函数,编译器会提供一个默认的析构函数来完成清理工作。 15. 类的继承和多态 - 通过...
《C++程序设计基础》复习题涵盖了C++编程的基础概念,包括算法控制结构、函数、类、对象、构造函数、析构函数、函数重载、数据类型、数组、字符串、运算符、循环以及内存管理等多个方面。以下是这些知识点的详细说明...
析构函数无参数,可以定义为内联和虚函数,但不能重载。 9. **访问控制**:基类的protected成员在派生类中仍然是protected的,但在public派生类中,它们仍然保持protected,而在private派生类中变为private。 10. ...