我是一个新手程序员,正在为学校编写一些代码。当执行以下代码时,将输出单词BAD。我不明白为什么终止WriteLettersObj对象时不输出析构函数中的字母C。

// Lab 1
//
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

class WriteLetters {
public:
    WriteLetters();
    void writeOneLetter();
    ~WriteLetters();
} WriteLettersObj;

WriteLetters::WriteLetters() {
    cout << "B";
}

void WriteLetters::writeOneLetter() {
    cout << "A";
}

WriteLetters::~WriteLetters() {
    cout << "C" << endl;
}

int main() {
    WriteLettersObj.writeOneLetter();
    cout << "D";
    getch();

    return 0;
}

最佳答案

您正在将iostream与非ANSI conio.h混合。

进行更改:

// getch();
cin.get();

嘿,请问,C出现了。至少在OS X上可以。还有Ubuntu。

关于c++ - C++析构函数异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5958795/

10-09 13:37