#include<iostream> #include<string.h> using namespace std; class A{ private: char name[5]; public : A(char *s) { cout << "construcotr---" << s << endl; strcpy(name, s); } ~A(){cout << "descontructor---" << name << endl; } }; A a("a"); int main(){ int c = 9; A b("b"); return 0; } A m("m");
时间: 2024-03-31 18:38:18 浏览: 86
使用include <iostream>时一定要加using namespace std
你的代码定义了一个类A,其中包括一个构造函数和一个析构函数。在代码中,你创建了三个A类对象:a、b和m。其中,a和m是在类定义之外定义的全局对象,它们在程序开始执行时被创建,而在程序结束时被销毁。b是在main函数中定义的局部对象,它在main函数执行期间被创建,而在main函数执行结束时被销毁。当对象被销毁时,其析构函数会被调用,输出相应的信息。因此,你的程序的输出将会是:
construcotr---a
construcotr---b
construcotr---m
descontructor---b
descontructor---a
descontructor---m
请注意,在类A中,name数组只有5个元素,但在构造函数中,你却使用了strcpy函数将一个长度为1的字符串复制到了name中,这可能会导致内存越界的问题。建议你在定义name数组时将其大小增加到足够容纳你要存储的字符串的大小。
阅读全文