构造函数

构造函数用于执行类的实例的初始化。每个类都有构造函数,即使我们没有声明它,编译器也会自动为我们提供一个默认的构造函数。在访问任何一个类的时候,系统将最先执行构造函数中的语句。实际上,任何构造函数的执行都隐式地调用了系统提供的默认的构造函数base()。

如果我们在类中声明了如下的构造函数,

C(...){...}

它等价于:

c(...):base(){...}

使用构造函数请注意以下几个问题:

●一个类的构造函数通常与类名相同。

●构造函数不声明返回类型。

●一般地,构造函数总是public类型的。如果是private类型的,表明类不能被实例化,这通常用于只含有静态成员的类。

●在构造函数中不要做对类的实例进行初始化以外的事情,也不要尝试显式地调用构造函数。

下面的例子示范了构造函数的使用:

class A
{
  int x=0,y=0,count;
     public A(){
     count=0;
}
     public A(int vx,int vy){
     x=vx;
   y=vy;
 }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索实例
, 函数
, 构造函数
, 类型
, 类名
, public
一个
java构造函数、c#构造函数、js构造函数、构造函数的作用、php 构造函数,以便于您获取更多的相关知识。

时间: 2024-08-01 19:23:44

构造函数的相关文章

java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题

/* 对于类中对成员变量的初始化和代码块中的代码全部都挪到了构造函数中, 并且是按照java源文件的初始化顺序依次对成员变量进行初始化的,而原构造函数中的代码则移到了构造函数的最后执行 */ import static java.lang.System.out; public class PersonDemo { public static void main(String[] args) { //*********测试父类与子类之间的循环调用的问题 out.println("main1&quo

C++对象模型(一):The Semantics of Constructors The Default Constructor (默认构造函数什么时候会被创建出来)

本文是 Inside The C++ Object Model, Chapter 2的部分读书笔记. C++ Annotated Reference Manual中明确告诉我们: default constructor会在需要的时候被编译器产生出来.注意,这里是编译器需要,而不是程序需要.后来的C++ Standard 95修改了这种说法,但是实质上仍是相同的: For class X, if there is none user declared constrator, one default

为什么不能再构造函数中执行大量的内存分配、文件读写等复杂操作??

问题描述 为什么不能再构造函数中执行大量的内存分配.文件读写等复杂操作?? 大婶们啊:为什么不能再构造函数中执行大量的内存分配.文件读写等复杂操作??? 解决方案 可以啊!谁告诉你不行的? 只是在构造函数做太复杂的操作,当出错时发现错误有时会很困难.特别是定义为全局变量时,程序还没有运行.就出错了. 解决方案二: 构造函数主要进行一些初始化工作,复杂的工作放到成员函数中处理,这样比较符合OOP设计 解决方案三: 以牺牲对象分配的时间来换取代码的简单行· 是可以的·! 但是不推荐 解决方案四: 这

数组对象使用构造函数初始化的问题

问题描述 数组对象使用构造函数初始化的问题 解决方案 楼主你这样写不行的,只有定义的时候才能那么初始化 类里面加个成员函数用来设置变量的值SetValue class student { string name; double score; static int num; static double sum; public: student(string n = "no name", double s = 0):name(n),score(s) { num++; sum += scor

java-PowerMockito来mock 构造函数的问题

问题描述 PowerMockito来mock 构造函数的问题 public class HttpProtocolHandler { private static HttpProtocolHandler httpProtocolHandler = new HttpProtocolHandler(); public static HttpProtocolHandler getInstance() { return httpProtocolHandler; } /** * 私有的构造方法 */ pri

缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

问题描述 缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException.必须定义显式构造函数 int lastnum = getNum(source.getProperty(""fileName"")); public static int getNum(String Filename) throws IOException { InputStream myxls; myxls = new FileInputStream(Filename); sr =

在类中使用string类的问题。我定义的构造函数,想把字符串赋给string对象,却实现不了。

问题描述 在类中使用string类的问题.我定义的构造函数,想把字符串赋给string对象,却实现不了. //12.2.ano.h #ifndef STRING2_H_ #define STRING2_H_ #include #include using std::string; using std::cout; using std::cin; using std::endl; class String { private : string str; public : String(); Str

对象的初始化-用函数的返回值初始化一个类对象,这其中用了几次复制构造函数

问题描述 用函数的返回值初始化一个类对象,这其中用了几次复制构造函数 这是我自己写的一段代码#includeusing namespace std;class Example{int num;public:Example(int i){num=i;cout<<""This is construction with parameter.n"";}Example(){num=0;cout<<""This is construc

javascript创建对象之构造函数模式(二)

对上一章节的工厂模式进行代码重写 function Human(name, sex) {             this.name = name;             this.sex = sex;             this.say = function () {                 alert(this.name);             }         }         var man = new Human("汉武大帝", "男&quo

javascript构造函数: JavaScript学习笔记(二十四) 模块创建构造函

 模块创建构造函数(Modules That Create Constructors)在前面的例子中,创建了一个MYAPP.utilities.array对象,但有时候使用构造函数创建你的对象更方便,你也可以使用模块模式实现它.唯一的不同就是在包裹模块的立即执行函数返回一个函数而不是对象.下面这个例子就是模块模式创建一个构造函数 MYAPP.utilities.ArrayMYAPP.namespace('MYAPP.utilities.Array');MYAPP.utilities.Array