3 回答

TA貢獻1804條經驗 獲得超7個贊
關于這個問題,iostream.h是非標準頭文件,iostream是標準頭文件形式。iostream.h時代沒有名詞空間,即所有庫函數包括頭文件iostream.h都聲明在全局域。為了體現結構層次,c++標準委員會引入了名詞空間這一概念,并把所有庫函數聲明由全局域改到了名詞空間std。故而,目前這兩種頭文件等價:#include<iostream.h>和#include <iostream>;using namespace std(因為iostream聲明在std中,故而要加上這句,除非你不用庫函數,否則錯誤);
如前很多編譯器都同時支持這兩種頭文件形式,更好的當然是標準頭文件。至于為什么不廢除非標準頭文件,大概是為了兼容以前的代碼吧。
還有一點在標準c++中,所有庫函數都沒有.h后綴了,如果是c語言的庫函數,則去掉后綴,并在開頭加上一個c(如,c++的string.h變為string,c語言的stdio.h,變為cstdio,c語言的string.h變為cstring等等)。

TA貢獻1876條經驗 獲得超7個贊
#include <iostream>
using namespace std;
class Myclass
{
int m_Number;
friend class friendC1;
public:
Myclass()
{
m_Number = 5;
}
};
class friendC1
{
public:
int fun(int x)
{
Myclass obj;
return obj.m_Number-x;
}
};
int main()
{
friendC1 obj;
cout<<obj.fun(10)<<endl;
}
使用名字空間。
<iostream.h>為非標準
添加回答
舉報