C++中初始化和定义对象的语法,带括号与不带括号的区别

小记:运行环境:win xp  vs2008

#include <iostream>
#include <string>

using std::cout;
using std::cin;
using std::endl;
using std::istream;
using std::ostream;

class y
{
private:
    int a;
public:
    y(){ cout << "y()" << endl;}
    y(int n){cout << "y(int n)" << endl; a = n;}
    int GetA(){return a;}
};

int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;

y *py = new y();    // 调用y(),不论 y(int n) 一般构造函数是否存在
    cout << py->GetA() << endl;        // 任意值
    y *py2 = new y;        //  调用y(),不论 y(int n) 一般构造函数是否存在
    cout << py2->GetA() << endl;    // 任意值
    y *py3 = new y(222);    // 调用 y(int n)
    cout << py3->GetA() << endl;    // 222

/*  // 结果同上,即直接初始化和采用赋值方式调用构造相同,且都不初始化成员变量

y *py;
    py = new y();
    cout << py->GetA() << endl;    
    y *py2;
    py2 = new y;
    cout << py2->GetA() << endl;
    y *py3;
    py3 = new y(222);
    cout << py3->GetA() << endl;

*/

  system("pasue");
    return 0;
}

时间: 2024-08-13 13:49:49

C++中初始化和定义对象的语法,带括号与不带括号的区别的相关文章

1.16创建矩形类,长和宽作为类的属性,在构造方法中初始化,定义一个成员方法求矩形的面积。

1 public class JuXing { 2 //属性 成员变量 3 4 double Chang; 5 6 double Kuan; 7 8 9 //方法 10 11 double MianJi(){ 12 13 14 return Chang*Kuan; 15 16 } 17 18 19 JuXing(double a,double b){ 20 21 Chang = a; 22 Kuan = b; 23 } 24 25 public static void main(String[]

TreeSet排序,存储自己定义对象,自己定义比較器演示样例

Set:无序.不能够反复元素. |--HashSet:数据结构是哈希表.线程是非同步的. 保证元素唯一性的原理:推断元素的hashCode值是否同样. 假设同样,还会继续推断元素的equals方法.是否为true. |--TreeSet:能够对Set集合中的元素进行排序. 底层数据结构是二叉树. 保证元素唯一性的根据:compareTo方法return 0. TreeSet排序的第一种方式:让元素自身具备比較性. 元素须要实现Comparable接口,覆盖compareTo方法. 也种方式也成为

java中初始化对象变量的方法

1.在类定义对象的地方初始化 2.在类构造器中初始化 3.在正要使用这些对象之前,惰性初始化,或者叫惰性加载 4.使用实例初始化    在方法里使用初始化 版权声明:本文为博主原创文章,未经博主允许不得转载.

java中基本数据类型与对象引用类型的默认初始化值学习

import org.junit.Test; public class TestInit {     boolean boo;     char cha;     byte by;     short shor;     int in;     float flo;     long lon;     double dou;     String str;     @Test     public void aa() {         System.err.println("boolean:&

JVM内存模型及对象在内存中初始化的过程

JVM内存模型 Java虚拟机所管理的内存区域,也称为运行时数据区,分为以下几个运行时数据区,如图所示 程序计数器:当前程序所执行字节码的行号指示器 程序计数器(Program Counter Register)是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选 取下一条需要执行的字节码指令,分支.循环.跳转.异常处理.线程恢复等基础功能都需 要依赖这个计数器来完成. Java虚拟机的多线程是是通过线程轮流切

JavaScript学习12 JS中定义对象的几种方式【转】

avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工厂方式 3.构造函数方式 4.原型("prototype")方式 5.动态原型方式 一.基于已有对象扩充其属性和方法 <script type="text/javascript

(六)javascriptJS中定义对象的几种方式(转)

JavaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工厂方式 3.构造函数方式 4.原型("prototype")方式 5.动态原型方式 一.基于已有对象扩充其属性和方法 <script type="text/javascrip

angluarjs中页面初始化的时候会出现语法{{}}在页面中问题

angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题.出现这个的原因是:由于页面或者组件需要渲染加载数据,浏览器和angluarjs渲染页面需要消耗一定的时间,虽然这个时间很多,可能肉眼看不出来,但有的时候加载时间比较长的时候,特别是网络等原因.这样就看到了在渲染前的带有语法的页面.解决的办法如下: 1.ng-cloak ng-cloak指令是angular的内置指令,它的作用是隐藏所有被它包含的元素: <div ng-cloak> <h1>Hel

JavaScript学习12 JS中定义对象的几种方式

JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工厂方式 3.构造函数方式 4.原型("prototype")方式 5.动态原型方式 一.基于已有对象扩充其属性和方法 <script type="text/javascript"> var object = new Object(); object.name