原文:C++中为什么构造函数不能定义为虚函数

关于C 为什么不支持虚拟构造函数,Bjarne很早以前就在C Style and Technique FAQ里面做过回答 Avirtual call is a mechanism to get work done given partialinformation. In particular, virtual allows us to call afunction knowing only an ...

2020-02-21 21:57 0 1049 推荐指数:

查看详情

C++构造函数不能调用函数

构造函数调用函数,并不会产生多态的效果,就跟普通函数一样。 c++ primer 第四版497页15.4.5构造函数和析构函数讲到,如果在构造函数或析构函数调用函数,则运行的是为构造函数或析构函数自身类型定义的版本。另外,必须通过基类类型的引用或指针进行函数调用才会发生多态 ...

Mon Aug 22 22:18:00 CST 2016 0 1774
C++构造函数 & 拷贝构造函数 & 派生类的构造函数 & 继承的构造函数

构造函数 ,是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。(摘自百度百科构造函数)。 一、最基本的构造函数 ...

Fri Aug 15 04:56:00 CST 2014 0 2764
C/C++ 构造函数不能是函数

1、如果构造函数函数,则它需要通过类的虚表来调用,而虚表的指针保存在对象,没有调用构造函数,就没有对象。 ...

Tue Mar 17 04:26:00 CST 2020 0 1003
[C++基础]047_构造函数为什么不能是函数

本文的主题是构造函数不能是函数,首先这不需要你用脑子去记,因为当你写出来虚构造函数时,编译器是能检查出来的。本文的目的是为什么构造函数不能是函数。 首先,先看一段错误的代码,下面的代码是通不过编译阶段的。 为什么构造函数不能是函数呢?这里你需要知道一个概念,那就是函数 ...

Sat Dec 29 06:39:00 CST 2012 1 4825
C++构造函数为何不能为函数

1. 存储空间角度:函数对应一个vtable,vtable存储于对象的内存空间 若构造函数的,则需要通过 vtable来调用,若对象还未实例化,即内存空间还没有,无法找到vtable 2. 使用角度:函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。 构造函数 ...

Mon Sep 16 07:32:00 CST 2019 0 1305
C++类的定义和类的构造函数

类的定义 class 类名{ 访问范围说明符: 成员变量1 成员变量2 成员函数声明1 成员函数声明2 访问范围说明符: 更多成员变量 更多成员函数声明 ... }; 类的定义要以 ; 结束。 “访问范围说明符”一共有三种,分别是 public、private 和 protected。三者的区别 ...

Sun Sep 15 22:29:00 CST 2019 2 1198
C++基类构造函数详解(调用顺序)之一

解释某个函数,我通常的讲解不会先去长篇大论去空谈,先整个例子来看看!!走起.... 先不要忙着去执行代码!! 来看几个基本概念: 一、基类的作用:     当一个类的部分或者全部基类来自另一个共同的基类时,这些直接基类从上一级共同基类继承来的 就拥有相同的名称 ...

Fri Apr 26 00:40:00 CST 2013 0 7632
C++继承时的构造函数的讲解

继承基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用基类的构造函数。对最终的派生类来说,基类是间接基类,而不是直接基类。这跟普通继承不同,在普通继承,派生类构造函数只能调用直接基类的构造函数,不能调用间接基类的。下面我们以菱形继承为例来演示构造函数的调用 ...

Wed Jan 11 18:51:00 CST 2017 0 4495
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM