首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

头文件和源文件的有关问题,老是出现这个有关问题,请求大牛帮助

2013-04-07 
头文件和源文件的问题,老是出现这个问题,请求大牛帮助头文件 名称stock#ifndef STOCK_H_#define STOCK_H_c

头文件和源文件的问题,老是出现这个问题,请求大牛帮助
头文件 名称stock
#ifndef STOCK_H_
#define STOCK_H_
class Stock
{
private:
char company;
int shares;
double share_val;
double total_val;
void set_tot(){total_val=shares*share_val;}
public:
Stock();
Stock(const char *co,int n=0,double pr=0.0);
~Stock();
void buy(int num,double price);
void sell(int num,double price);
void update(double price);
void show();
};
#endif;
实现文件 名称Stock_source

#include<iostream>
#include "stock.h"

Stock::Stock()
{
std::cout<<"default construct called\n";
std::strcpy(company,"no name");
shares=0;
share_val=0.0;
total_val=0.0;
}
Stock::Stock(const char *co,int n,double pr)
{
std::cout<<"construct using "<<co<<"called\n";
std::strncpy(company,co,29);
company[29]="\0";
if(n<0)
{
std::cerr<<"number of shares can't be negative;"
<<company<<"shares set to 0.0\n";
shares=0;
}
else
shares=n;
share_val=pr;
set_tot();

}
Stock::~Stock()
{
std::cout<<"bye,"<<company<<"!\n";
}
void Stock::buy(int num,double price)
{

if(num<0)
{
std::cerr<<"number of shares purchased can't be negative ."
<<"transaction is aborted.\n";
}
else 
{
shares+=num;
share_val=price;
set_tot();
}

}

void Stock::sell(int num,double price)
{

using std::cerr;
if(num<0)
{
cerr<<"number of shares sold can't be negative ."
<<"transaction is absorted.\n";
}
else if(num>shares)
{
cerr<<"you can't sell more than you have!"
<<"transaction is absorted.\n";
}
else
{
shares-=num;
share_val=price;
set_tot();
}
}
void Stock::update(double price)
{
share_val=price;
set_tot();
}
void Stock::show()
{

using std::cout;
using std::endl;
cout<<"company"<<company
<<"shares"<<shares<<endl
<<"share price"<<share_val
<<"total worth:$"<<total_val<<endl;
}

客户文件 usestock1
#include <iostream>
#include "stock.h"
int main()
{
using std::cout;
using std::ios_base;
cout.precision(2);
cout.setf(ios_base::fixed,ios_base::floatfield);
cout.setf(ios_base::showpoint);
cout<<"using constructors to create new objects\n";
Stock stock1("nanosmart",12,20.0);
stock1.show();
Stock stock2=Stock("boffo objects",2,2.0);
stock2.show();

cout<<"assigning stock1 to stock2:\n";
stock2=stock1;
cout<<"listing stock1 and stock2:\n";
stock1.show();
stock2.show();


cout<<"using a constructor to reset an object\n";
stock1=Stock("nifty foods",10,50.0);
cout<<"revised stock1:\n";
stock1,show();
cout<<"done\n";
return 0;
}
编译时为什么老是提示fatal error C1083: 无法打开包括文件:“stock.h”: No such file or directory



[解决办法]
不应该啊,应该没问题啊,是不是打错字,或者stock.h放到其他地方去了!
[解决办法]
主程序和头文件没放在同一个文件夹里吧,主程序加载头文件默认是从它自己所在路径开始搜索的,如果头文件没在同一个文件夹就找不到了。

热点排行