亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于下面的程序,我不明白為什么一定要用#include<iostream.h>?

關于下面的程序,我不明白為什么一定要用#include<iostream.h>?

一只斗牛犬 2021-12-08 23:19:57
/********found********/#include <iostream.h>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;}};void main(){friendC1 obj;cout<<obj.fun(10)<<endl;
查看完整描述

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等等)。

查看完整回答
反對 回復 2021-12-12
?
幕布斯6054654

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>為非標準



查看完整回答
反對 回復 2021-12-12
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

#include <iostream>需要引用命名空間 std里的東西
而c版的iostream.h就相當于和這個文件放一起,所以是不一樣的

查看完整回答
反對 回復 2021-12-12
  • 3 回答
  • 0 關注
  • 440 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號