西溪洗 发表于 2018-5-5 13:51:48

关于C++类指针动态分配内存的语法问题

动态分配这种类空间,在构造函数有参数的情况下,如何进行传参

#include "stdafx.h"

class Test
{
public:
        int a;
        /*                //没被注释的话,通过重载是能够分配成功的
        Test()
        {
               
        }*/
        Test(int a)
        {
                this->a=a;
        }
};

int _tmain(int argc, _TCHAR* argv[])
{
        Test *test=new Test;                //这里提示是没有合适的构造函数,因为不知道这种情况应该如何传参
        return 0;
}

人造人 发表于 2018-5-5 14:15:59

ba21 发表于 2018-5-5 14:18:50

Test *test=new Test(2);    //传参是用()吧。[]是数组

那微笑阳光 发表于 2018-5-5 15:16:01

3L说得对,楼主基础不够扎实哦~

qq1242009750 发表于 2018-5-5 16:09:04

你把无参的构造函数给注释了,只剩下了有参的构造函数,但是呢,你创建了一个数组,但没有给参数,此时默认调用无参构造函数来创建,又因为你定义了一个有参的构造函数,所以默认构造函数就没用了

西溪洗 发表于 2018-5-5 20:51:53

qq1242009750 发表于 2018-5-5 16:09
你把无参的构造函数给注释了,只剩下了有参的构造函数,但是呢,你创建了一个数组,但没有给参数,此时默认 ...

那这个数组的传递参数的写法该怎么写
,尝试了楼上说的,但编译器好像不识别

西溪洗 发表于 2018-5-5 20:53:36

人造人 发表于 2018-5-5 14:15


这种写法我的编译器好像不识别,我用的VS2010

西溪洗 发表于 2018-5-5 21:05:51

人造人 发表于 2018-5-5 14:15


层主用的是C++11往上的版本吗

人造人 发表于 2018-5-5 21:11:53

西溪洗 发表于 2018-5-5 21:05
层主用的是C++11往上的版本吗



旧版本好像不能这样用,百度了一会也没有找到什么好的方法
只找到了这个
https://www.zhihu.com/question/31525159

西溪洗 发表于 2018-5-5 22:02:20

人造人 发表于 2018-5-5 21:11


旧版本好像不能这样用,百度了一会也没有找到什么好的方法


谢谢了。问题解决了
页: [1]
查看完整版本: 关于C++类指针动态分配内存的语法问题