第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

size用const int定義,但為什么會顯示size不明確?

size用const int定義,但為什么會顯示size不明確?

C C++
xungeer29 2017-10-04 15:40:10
#include<iostream>using namespace std;const int size=20;???????????? // 為什么會size不明確?struct Student{?char firstname[size];?char lastname[size];?char grade;?int age;};void display(Student);int main(){?Student stu;?????????????? //創(chuàng)建結構變量?cout << "What is your first name?";?cin.getline(stu.firstname, size);?cout << "What is your last name?";?cin.getline(stu.lastname, size);?cout << "What letter grade do you deserve?";?cin>>stu.grade;?cout << "What is your age?";?cin >>stu.age;?display(stu);?return 0;}void display(Student information){?cout << "Name:" << information.lastname << " , " << information.firstname << endl??<< "Grade:" << char(information.grade+1) << endl??<< "Age:" << information.age << endl;}
查看完整描述

4 回答

已采納
?
onemoo

TA貢獻883條經(jīng)驗 獲得超454個贊

這個代碼應該沒有太大的錯誤。

你說的“顯示size不明確”是什么意思?? 是哪里顯示的??


查看完整回答
1 反對 回復 2017-10-04
  • xungeer29
    xungeer29
    VS2017編寫的,size下面有紅色波浪線,鼠標放上面就顯示size不明確
  • xungeer29
    xungeer29
    編譯后顯示 error C2872: “size”: 不明確的符號
  • onemoo
    onemoo
    這里寫不開,我給你寫了個新回答
?
onemoo

TA貢獻883條經(jīng)驗 獲得超454個贊

我再多說幾句,不推薦用 using namespace std; 寫法。

你知道C++標準庫中的符號都是定義在std命名空間中的,使用它們時必須在前面寫上std::來指明命名空間。

有時候覺得每次都這樣寫很麻煩,就用 using namespace std;? 這樣就可以省下寫名字前面的std::。但這樣做等于將 std 中的名字都暴露了出來! 如果你程序中用了和標準庫中同樣的名字就會發(fā)生命名沖突。要知道標準庫中的名字是非常多的,要完全避免使用是很難的。

原本C++中引入命名空間就是為了避免命名沖突! 它把所有標準庫里的名字都放入std中,雖然在使用庫中符號時會有些麻煩,但就不會和你自己程序中的名字沖突了。

而你寫 using namespace std; 等于違背了命名空間的初衷。? 你這個例子就是在無意中引起了命名沖突。


一般建議使用標準庫中符號時都要明確寫上 std::

如果真的想要少寫 std::,那么推薦另一種寫法:

using std::cout;

using std::cin;

像這樣明確指出想簡寫的名字,只把這幾個名字從std命名空間中暴露出來。

這樣你仍然可以在代碼中直接使用 cout 和 cin。 而你再定義 size 也不會有問題(庫中的 size 還在 std 中,不會和這個沖突)。

查看完整回答
1 反對 回復 2017-10-05
?
onemoo

TA貢獻883條經(jīng)驗 獲得超454個贊

VS 中 C2872 錯誤是指在命名檢查時發(fā)現(xiàn)歧義。這里也就是指 size 這個名字發(fā)生命名沖突。

這有可能是與<iostream>里標準庫中的命名沖突了。 不過這一點我很奇怪,我知道的 std::size 是在<iterator>中的。? 也許 VC 的<iostream>中也有叫 size 的吧。

你可以試試用下面方法解決:

  • 要么,把這個變量改為別的名字(別用size)

  • 要么,去掉上一行的?using namespace std;。 在代碼中用到標準庫中的名字時都在前面加上 std::,如 std::cout? ?std::cin

用上述兩種方法的任何一種都可以,再看看還會不會報這個錯。

查看完整回答
1 反對 回復 2017-10-05
  • 4 回答
  • 1 關注
  • 6203 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號