这是c++第几版基准
这是c++第几版标准在我学c++生成类的对象时都是new一个,然后delete今天看一同事直接:A a然后就可能直接用
这是c++第几版标准
在我学c++生成类的对象时都是new一个,然后delete
今天看一同事直接:
A a;
然后就可能直接用a调用类A的成员了,并且后面也不用delete,这在我的印象中a应该是NULL的,我用vc2010试了一下还真行。
请问这是哪一版c++标准新增的呢?还是本来就有,谢谢。我已经10年不用c++了。
[解决办法]
....lz,应该学一下普通的语法,标准这种东西的差异你先不需要太关注了。
[解决办法]
C++的标准一直没有变
你把A类的实现看看,会发现为什么可以这样用的
基本语法搞通就好了
[解决办法]
这个只是基础语法
[解决办法]
我觉得LZ是吧C语言忘了。
[解决办法]
这就是变量定义啊,跟int a;一样的啊。
[解决办法]
楼主这么用是对的,前面new出来的对象后面才需要delete,他这样A a;的就不需要,而且这种定义是调用了默认的构造函数的,所以a也不会是NULL。10年没用c++ ,太久了,可能是你忘记了,这个语法十年前也应该是这样的。
[解决办法]
LZ确定学的是C++,不是java?
C++定义对象本来就可以这样的
[解决办法]
谁说没有?两年前才发生了一次大更新
从c++03改成c++11
[解决办法]A a;
这个,最初的草稿版估计就有了吧。。。。。。
[解决办法]如果是做项目的话,不建议lz现在去参加C++程序的开发,还是留给你同事吧。没什么恶意。
[解决办法]如果这个A类存在的话,那么你A a;
那就是为A类进行实例化了一个A类的对象
a此时就拥有了A类的一些属性和方法。
a 当然不用delete了
当你的程序运行结束后,系统会帮你释放的。
但是你A a = new A();
这时候的a要进行delete进行释放,否则会有内存泄露。
说白了:
就是前者是在栈上存储了a;
后者是在堆上存储了a;
希望对您有所帮助。
[解决办法]我擦。这不是直接调用默认的构造生成对象吗?
这个对象出了作用域就不起作用了
string getstring()
{
string astr("fuck fuck");
string bstr = astr.substr(5, 4);
return bstr;
}
void func()
{
string szStr = getstring();
std::cout << szStr << std::endl;
}
这样调用,你的蛋会碎得比较彻底
[解决办法]楼主应该是和Java等语言搞混了吧。