尽管我声明了一个不完整类型的自动实例,为什么这段代码会编译运行

时间:2015-11-27 17:00:50

标签: c++ turbo-c++

从技术上讲,下面给出的代码不应该编译和运行,因为我已经声明了一个不完整数据类型的自动实例,但确实如此。请允许有人为我解码。

 #include<iostream.h>
    #include<conio.h>

    void main()
    {
     class student;
     student s;

    getch();
    }


    class student 
    {

     int age;
     public:
     student();
     ~student();   
    };

    student::student()
{
 age=14;
}

student::~student()
{
 }`

1 个答案:

答案 0 :(得分:1)

它无效ISO C ++。

您的编译器可能接受它,因为它不是ISO C ++编译器 它是20世纪90年代早期版本的“C ++”的编译器。

ISO C ++于1998年出现。对于你在未使用的语言中应该或不应该发生的“技术上”,没有必要合理化。