到目前为止,我学到的是: 1。需要标题文件。 2。需要一个(或许多)不同的CPP文件。 3。需要连接它们。 如果您可以并且会有所帮助,请详细说明,如果您可以添加比我当前的方法,快捷方式或任何类似方法之类的方法,我将非常感谢它。另外,我知道如何选择和回答并提前投票。
#include <iostream>
#include <string>
using namespace std ;
class Drink
{
public:
void output_information()
{
cout << "Details: " << info << endl ;
}
string info ;
};
int main()
{
string input ;
Drink Arizona_Green_Tea ;
Arizona_Green_Tea.info = "\n Premium Brewed Green Tea \n Filtered Water \n High-
Fructose Corn Syrup \n Honey \n Citric Acid \n Natural Flavors \n Ginseng
Extract \n Ascorbic Acid " ;
Drink Honest_Ade_Green_Tea ;
Honest_Ade_Green_Tea.info = "\n FILTERED WATER \n ORGANIC CANE SUGAR \n FAIR
TRADE ORGANIC GREEN TEA LEAVES \n ORGANIC HONEY \n NATURAL FLAVOR \n ASCORBIC
ACID (VITAMIN C) \n CITRIC ACID" ;
Drink Vitamin_Water_power_c ;
Vitamin_Water_power_c.info = "reverse osmosis water \n crystalline \n fructose
and cane sugar (sweeteners) \n less than 0.5% of: \n vitamin C (ascorbic acid),
citric \n acid, natural flavors, dragonfruit \n extract, vegetable juice
(color), \n magnesium lactate and calcium \n lactate and potassium phosphate \n
(electrolyte sources), taurine, \n vitamin B5 (calcium pantothenate), \n zinc
gluconate, vitamin B6 \n (pyridoxine hydrochloride)\n vitamin B12 \n chromium
polynicotinate" ;
cout << "Search Database: " ;
getline(cin , input) ;
cout << endl ;
if(input == "Arizona Green Tea" || input == "arizona green tea" || input == "ARIZONA
GREEN TEA")
{
Arizona_Green_Tea.output_information() ;
}
if(input == "Honest Ade Green Tea")
{
Honest_Ade_Green_Tea.output_information() ;
}
if(input == "Vitamin Water Power" || input == "vitamin water power-c" || input ==
"VITAMIN WATER POWER C" || input == "Vitamin Water Power C" || input =="vitamin
water red" || input == "Vitamin Water Red" )
{
Vitamin_Water_power_c.output_information() ;
}
return 0 ;
}
如果您有一个源文件
foo.cpp
zap
或您可以分两个步骤构建可执行文件,首先是从
foo.o
构建对象文件,然后从foo.cpp
:构建zap
::
foo.o
(以两个步骤进行操作的原因并不明显,但请忍受我。)
如果您有
源文件,
g++ -c foo.cpp -o foo.o
g++ foo.o -o zap
和foo.cpp
,则可以像这样从它们中构建可执行文件:
bar.cpp
或在两个阶段中,就像这样:
g++ foo.cpp bar.cpp -o zap
完成此操作后,假设您修改。您可以以这种方式进行重建:
g++ -c foo.cpp -o foo.o
g++ -c bar.cpp -o bar.o
g++ foo.o bar.o -o zap
没有理由重建
foo.cpp
zap
g++ -c foo.cpp -o foo.o
g++ foo.o bar.o -o zap
,并且您仍然从较早的构建中留下了
bar.o
。(像Make这样的实用程序可以帮助您管理此过程,处理不同的步骤并跟踪哪些文件是最新的,但我们不要一次尝试做太多。) 现在,如何将代码划分为不同的文件?这进入了一个微妙的thranslation Units的主题,但通常会声明进入标题文件,源文件包含一组相关功能。如果有类
bar.cpp
,则类定义(包括成员函数声明)将进入bar.o
,并且成员函数定义分为
Foo
.。
在您的情况下,您会有
Foo.h
:
Foo.cpp
Drink.h
:
#include <string>
using std::string;
class Drink
{
public:
void output_information();
string info;
};
和
Drink.cpp
:
#include "Drink.h"
#include <iostream>
using namespace std; // saves typing, but not a good idea generally
void Drink::output_information()
{
cout << "Details: " << info << endl;
}
想想让程序从文件中读取饮料描述。这样,当您的饮料食谱改变时,您就不必重新编译。
今天的词:Google,ifstream,vector.