人生最曼妙的风景,竟是内心的淡定与从容!
C++: 說好的new呢
new
#include<iostream> class test { public: test() = default; test(int b) { a = b; } void A() { std::cout << a << std::endl; } private: int a; }; int main(int argc,char *argv[]) { test(1).A(); //没问题 (*(new test(1))).A(); //内存泄露 (new test(1))->A(); //上一行的语法糖 return 0; }
當然這個程式設計習慣很不好
而且C++的new並不是你想像的那麼簡單
你上面的java/c++构造对象的方法是有区别的,还有c++才是返回一个真正的对象,而java是类似于指针的东西,你恰好理解反了,而且c++也有类似于java返回指针的用法:new test(1)这样返回的就是一个指针~~还有就是 这样不行?test(1).A();(new test(1))->A(); // 當然這種不推薦,因為有記憶體洩漏
java/c++
c++
java
new test(1)
test(1).A()
(new test(1))->A();
你的c++沒有用new
C++: 說好的
new
呢當然這個程式設計習慣很不好
而且C++的
new
並不是你想像的那麼簡單你上面的
java/c++
构造对象的方法是有区别的,还有c++
才是返回一个真正的对象,而java
是类似于指针的东西,你恰好理解反了,而且c++
也有类似于java
返回指针的用法:new test(1)
这样返回的就是一个指针~~还有就是 这样不行?
test(1).A()
;(new test(1))->A();
// 當然這種不推薦,因為有記憶體洩漏你的c++沒有用new