请人看看这个是不是内存泄漏
请人看看这个是不是内存泄漏 第一,是。第二,你这是照着C的教材在学C++么?写得不伦不类的。。 Croper 发表于 2020-1-20 19:45
第一,是。
第二,你这是照着C的教材在学C++么?写得不伦不类的。。
晕死 怎么不伦不类 你说一下 我好改进 我这是照传智扫地僧的视频写的 Croper 发表于 2020-1-20 19:45
第一,是。
第二,你这是照着C的教材在学C++么?写得不伦不类的。。
我懂了 是既用malloc又用new运算符是吧 我这个视频是从c 过渡到C++的 Croper 发表于 2020-1-20 19:45
第一,是。
第二,你这是照着C的教材在学C++么?写得不伦不类的。。
兄台 问一下 是不是只要写有参构造函数 默认的拷贝构造函数C++编译器就不提供了那样假如obj2 = obj1;也不能调用默认的前拷贝了? 琴长不过时光 发表于 2020-1-20 19:58
晕死 怎么不伦不类 你说一下 我好改进 我这是照传智扫地僧的视频写的
第一、string.h和malloc.h都是C的库文件。C++里的标准化版本是cstring和memory;C++的库里包含string.h和malloc.h,直接上C++就不应该用这两个库。
第二、既然是C++为什么要用二重指针,指针的引用它不香么?int operateTeacher(Teacher*& p) {
if (p == nullptr) {
p = new Teacher;
}
//.....
}
int main() {
Teacher* pC = new Teacher;
//......
operateTeacher(pC);
}
第三、如果是我的话肯定是不会用operateTeacher这种函数名的,它和运算符重载operator Teacher长得太像了。
Croper 发表于 2020-1-20 20:13
第一、string.h和malloc.h都是C的库文件。C++里的标准化版本是cstring和memory;C++的库里包含string.h和 ...
哦哦 谢谢 指点 琴长不过时光 发表于 2020-1-20 20:02
兄台 问一下 是不是只要写有参构造函数 默认的拷贝构造函数C++编译器就不提供了那样假如obj2 = obj1;也 ...
第一、提供了有参构造函数编译器就不会为你提供默认构造函数了,但是复制构造函数任然会提供。
你说你不能调用默认复制构造函数的话肯定不是这儿的原因。你可以发一下源代码。
第二,即使编译器没有默认提供,你也可以使用struct A {
A() = default;
A(const A&) = default;
};
强制让编译器提供默认版本。 C++的库里包含string.h和malloc.h
这里少打两个字,应该是“C++的库里包含string.h和malloc.h是为了兼容C语言的代码”
页:
[1]