我有,據我可以告訴我所做的一切都是正確命名空間定義和異常
下面是我的代碼,並建立輸出定義一個命名空間
一些麻煩
FlashDrive.h
#ifndef FLASHDRIVE_H
#define FLASHDRIVE_H
#include <iostream>
#include <cstdlib>
namespace cs52 {
class FlashDrive {
friend FlashDrive operator+ (FlashDrive used1 , FlashDrive used2);
friend FlashDrive operator- (FlashDrive used3, FlashDrive used4);
public:
FlashDrive& FlashDrive::operator=(int);
FlashDrive::FlashDrive(int);
FlashDrive& operator = (const FlashDrive& usedtotal){
my_StorageUsed= usedtotal.my_StorageUsed;
return *this;
}
FlashDrive();
FlashDrive(int capacity, int used, bool pluggedIn);
void plugIn();
void pullOut();
void writeData(int amount);
void eraseData(int amount);
void formatDrive();
int getCapacity();
void setCapacity(int amount);
int getUsed();
void setUsed(int amount);
bool isPluggedIn();
private:
int my_StorageCapacity; // in kilobytes
int my_StorageUsed; // in kilobytes
bool my_IsPluggedIn; // am I attached to a computer?
}extern drive1,drive2;
inline FlashDrive operator+ (FlashDrive used1, FlashDrive used2) {
FlashDrive plus;
plus.my_StorageUsed = (used1.getUsed()+ used2.getUsed());
return plus;
}
inline bool operator< (FlashDrive &lhs,FlashDrive &rhs) {
return (lhs.getUsed() < rhs.getUsed());
}
inline bool operator> (FlashDrive &lhs,FlashDrive &rhs) {
return (operator <(rhs, lhs));
}
inline FlashDrive operator - (FlashDrive used3, FlashDrive used4){
FlashDrive minus;
minus.my_StorageUsed = (used3.getUsed()- used4.getUsed());
return minus;
};
}
#endif
FlashDrive.cpp
#include <iostream>
#include <cstdlib>
#include "FlashDrive.h"
namespace cs52 {
FlashDrive::FlashDrive() {
my_StorageCapacity = 0;
my_StorageUsed = 0;
my_IsPluggedIn = false;
}
FlashDrive::FlashDrive(int capacity, int used, bool pluggedIn) {
my_StorageCapacity = capacity;
my_StorageUsed = used;
my_IsPluggedIn = pluggedIn;
}
void FlashDrive::plugIn() {
my_IsPluggedIn = true;
}
void FlashDrive::pullOut() {
my_IsPluggedIn = false;
}
void FlashDrive::writeData(int amount) {
my_StorageUsed += amount;
}
void FlashDrive::eraseData(int amount) {
my_StorageUsed -= amount;
}
void FlashDrive::formatDrive() {
my_StorageUsed = 0;
}
int FlashDrive::getCapacity() {
return(my_StorageCapacity);
}
void FlashDrive::setCapacity(int amount) {
my_StorageCapacity = amount;
}
int FlashDrive::getUsed() {
return(my_StorageUsed);
}
void FlashDrive::setUsed(int amount) {
my_StorageUsed = amount;
}
bool FlashDrive::isPluggedIn() {
return(my_IsPluggedIn);
}
}
Main.cpp的
#include <iostream>
#include <cstdlib>
#include "FlashDrive.h"
void main()
{
using namespace cs52;
cs52::FlashDrive empty;
cs52::FlashDrive drive1(10, 0, false);
cs52::FlashDrive drive2(20, 0, false);
drive1.plugIn();
drive1.formatDrive();
drive1.writeData(5);
drive1.pullOut();
drive2.plugIn();
drive2.formatDrive();
drive2.writeData(1);
drive2.pullOut();
// read in a FlashDrive...
// the class designer for FlashDrive (that's you!)
// gets to decide which fields matter and should be read in
cs52::FlashDrive sample;
cin >> sample;
// print out a FlashDrive...
// the class designer for FlashDrive (that's you!)
// gets to decide which fields matter and should be printed
cout << sample << endl;
cs52::FlashDrive combined = drive1 + drive2;
cout << "this drive's filled to " << combined.getUsed() << endl;
cs52::FlashDrive other = combined – drive1;
cout << "the other cup's filled to " << other.getUsed() << endl;
if (combined > other) {
cout << "looks like combined is bigger..." << endl;
}
else {
cout << "looks like other is bigger..." << endl;
}
if (drive2 > other) {
cout << "looks like drive2 is bigger..." << endl;
}
else {
cout << "looks like other is bigger..." << endl;
}
if (drive2 < drive1) {
cout << "looks like drive2 is smaller..." << endl;
}
else {
cout << "looks like drive1 is smaller..." << endl;
}
// let's throw some exceptions...
try {
empty = empty - combined;
cout << "something not right here..." << endl;
} catch(std::logic_error) {
// an exception should get thrown...
// so the lines of code here should
// be run, not the cout statement...
}
try {
drive2.writeData(10000);
cout << "something not right here..." << endl;
} catch(std::logic_error) {
// an exception should get thrown...
// so the lines of code here should
// be run, not the cout statement...
}
try {
cs52::FlashDrive f(-1, -1, false);
cout << "something not right here..." << endl;
} catch(std::logic_error) {
// an exception should get thrown...
// so the lines of code here should
// be run, not the cout statement...
}
}
這裏是構建錯誤 大部分是多餘的
------構建開始:項目:FlashDriver,配置:調試Win32 ------ Build開始7/29/2013 4:32:24 AM。 InitializeBuildStatus:觸摸「Debug \ FlashDriver.unsuccessfulbuild」。 ClCompile:Main.cpp c:\ documents and settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(25):error C2065:'cin' :未聲明的標識符c:\ documents and settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(30):error C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(30):error C2065: 'endl':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(33):錯誤C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(33):error C2065: 'endl':未聲明的標識符c: \ Documents and settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(35):error C2146: 語法錯誤:缺少';'之前標識符' - 'c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(35):error C2065:' - ': 未聲明的標識符c:\ documents和設置\管理員\我的 文檔\ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(35):錯誤C2146: 語法錯誤:缺少';'之前標識符'drive1'c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(36):error C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(36):error C2065: 'endl':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main。cpp(39):error C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(39):error C2065: 'endl':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(42):error C2065: 'cout':未聲明的標識符c:\文件和 settings \ administrator \我的文檔\ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(42):error C2065: 'endl':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ pr ojects \ flashdriver \ flashdriver \ main.cpp(46):error C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \我的文檔\ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp (46):error C2065: 'endl':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(49):error C2065: ' COUT:未聲明的標識符C:\文件和設置 \管理員\我的文檔\ Visual Studio的 2010 \項目\ flashdriver \ flashdriver \ main.cpp中(49):錯誤C2065: 'ENDL':未聲明的標識符C:\文件和 設置\管理員\我的文檔\視覺工作室 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(53):error C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(53):error C2065: 'endl':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(56):error C2065 : 'cout':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(56):error C2065: 'endl':未聲明的標識符c :\ documents和 settings \ administ rator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(62):error C2146: 語法錯誤:缺少';'之前標識符' - 'c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(62):error C2065:' - ': 未聲明的標識符c:\ documents and settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(62):error C2146: 語法錯誤:缺少';'在標識符'combined'之前c:\ documents 和settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(63):error C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(63):error C2065: 'endl':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(72):error C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \我的文檔\ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(72):錯誤C2065 : 'endl':未聲明的標識符c:\ documents和 settings \ administrator \我的文檔\ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main。cpp(81):error C2065: 'cout':未聲明的標識符c:\ documents和 settings \ administrator \ my documents \ visual studio 2010 \ projects \ flashdriver \ flashdriver \ main.cpp(81):error C2065: 'endl':未聲明的標識符FlashDrive.cpp生成代碼...
構建失敗。
時間經過00:00:02.50 ==========構建:0成功,1失敗,0最新,0跳過==========
使用'的std :: cin'等 – lapk
或寫'使用命名空間std'在乞討他們的資格的文件... –
你需要'std :: cout','std :: cin'和'std :: endl'而不是'cout','cin'和'endl'。 – juanchopanza