C#默认构造函数的作用

构造函数主要用来初始化对象。它又分为静态(static)和实例(instance)构造函数两种类别。大家应该都了解如果来写类的构造函数,这里只说下默认构造函数的作用,以及在类中保留默认构造函数的重要性。实际上,我说错了。正确的说法是:以及在类中保留空参数构造函数的重要性。 我们来写一个类A,代码如下:

view plaincopy to clipboardprint?

public class A
{
public int Number; //数字
public string Word; //文本
}
//在Test类中实例化
public class Test
{
static void Main()
{
A a = new A(); //实例化,A()即为类A的默认构造函数
Console.WriteLine(“Number = {0}"nWord = {1}”,a.Number,a.Word);
Console.read();
}
}

输出的结果是:

Number = 0
Word =

时间: 2024-09-10 18:50:07

C#默认构造函数的作用的相关文章

vc++-构造函数的作用。。。。。。

问题描述 构造函数的作用...... 构造函数具有初始化内存的作用但是我查资料说它具有开辟内存的作用!就搞不懂 因为在函数执行时已经传入指向实例对象的this指针 那应该表明在调用构造函数以前已经开辟的内存 那么构造函数就没有开辟空间的作用了? 解决方案 构造函数是一个特殊的函数,它的函数名与类名相同,没有返回值,构建对象时会自动调用一次 构造对象时会自动调用一次,目的是为了完成对象被创建过程. 那我们来看看对象被创建的过程: 1.处理成员变量 a.如果成员变量是基本类型, 则使用内存中的值 b

从汇编看c++中默认构造函数的使用分析_C 语言

c++中的源程序: 复制代码 代码如下: class X {private:    int i;}; int main() {    X x;} 上面的类X没有定义构造函数,仅仅有一个int i. 下面为其汇编程序: 复制代码 代码如下: ; 7    : int main() {     push    ebp;ebp为一个寄存器,总是指向一个函数调用堆栈的栈底,作为基址,用偏移量来访问该调用栈上的变量,但这里没有任何变量要访问,因此不起作用     mov    ebp, esp;这两句的作

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

C++的默认构造函数

1.每个类必须有一个构造函数,否则没法创建对象: 2.若programer没有提供任何构造函数,则C++提供一个默认的构造函数,该默认构造函 数是无参构造函数,它仅负责创建对象,不做任何初始化的工作: 3.只要programer定义了一个构造函数(不管是无参还是有参构造),C++就不再提供默 认的默认构造函数.即如果为类定义了一个带参的构造函数,还想要无参构造函数,就必须 自己定义: 4.与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象 ,则对象的位模式全为0,否则,对

c++-为什么在类中定义没有定义默认构造函数的类类型变量通过编译了?

问题描述 为什么在类中定义没有定义默认构造函数的类类型变量通过编译了? class T { public: T(int i) :_i(i) {} private: int _i; }; class U { private: T t; }; 如果定义了一个构造函数不是就会取消合成的默认构造函数吗? 可以定义不可以赋值是吧?刚才发现 const int ci; int &ri; 也通过编译了. 解决方案 语法这么规定的,因为t是成员变量 如果你写在函数里 main() { T t; } 那就报错了.

深度探索C++对象模型--------默认构造函数

一:默认构造函数的构建      默认构造函数总是在被需要的时候构建出来!!关键字"被需要的时候"!! class Foo { public: int val; Foo *next; }; void foo_bar() { Foo bar; if(bar.val || bar.next) //do something } 上述的代码,编写者意图对象bar中的data member val 和 next 为0.但是编译器没有义务为你初始化为.首先对于堆栈中的变量都不一定会被初始化为0,而

c++的默认构造函数声明为什么出错

问题描述 c++的默认构造函数声明为什么出错 解决方案 https://technet.microsoft.com/zh-cn/subscriptions/hh567368 解决方案二: 直接写{}就可以了. 如果是抽象的,就=0 解决方案三: VS2010不支持C++ 11/14

《从零开始学Swift》学习笔记(Day 37)——默认构造函数

Swift 2.0学习笔记(Day 37)--默认构造函数原创文章,欢迎转载.转载请注明:关东升的博客 结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数.构造函数没有返回值,可以重载.在多个构造函数重载的情况下,运行环境可以根据它的外部参数名或参数列表调用合适的构造函数.默认构造函数结构体和类在构造过程中会调用一个构造函数,即便是没有编写任何构造函数,编译器也会提供一个默认的构造函数.下面看示例代码: class Rectangle { var width: Double

c++-没有合适的默认构造函数可用

问题描述 没有合适的默认构造函数可用 头文件:#ifndef WEBKIT_VLC_H#define WEBKIT_VLC_H#include #include #include ""obj_openvlc.h""namespace Ui { class Webkit_VLC;}class Webkit_VLC : public QWebView{ Q_OBJECTpublic: explicit Webkit_VLC(QWidget *parent = 0); ~