目录
前言
适合具有一定C/C++基础的读者观看
本章对C++程序的基本结构做一个概述,并预览后面将介绍的主题,如函数和类
一、进入C++
#include <iostream>
int main()//function header
{
using namespace std;
cout<<"Come up and C++ me some time ";
cout<<endl;
cout<<"You won't regret it!"<<endl;
return 0;
}
该示例包含以下元素
注释 —— 由前缀//标识
预处理指令 ——#include
函数头 ——int main()
编译指令 ——using namespace std
函数体 ——使用{}扩起
结束main()函数的return语句
使用cout工具的显示消息语句
这里需要注意的是名称空间
1.名称空间
如果使用iostream,而不是iostream.h,则应该使用下面的名称空间编译指令来使iostream中的定义对程序可用
using namespace std;
这叫做using编译指令
名称空间是一项C++特性,它在代码组合的时候让程序更容易组织。
名称空间使得编译器能够将内容封装在一个成为名称空间的单元中,这时使用名称空间就知道该使用哪个单元的函数。
比如在Microsoft和Piscine都含有一个叫做wanda()的函数,那么
Microsoft::wanda("go dancing?");
Piscine::wanda(" a fish named Desire");
就可以使用名称空间来调用不同的函数了。
2.源代码中的标记和空白
一行代码中不可分割的元素叫做标记。通常,必须用空格、制表符或者回车将两个标记分开。
空格、制表符、回车(换行符)统称为空白。
二、C++语句
2.2.1声明语句和变量
使用声明语句来指出存储类型并提供位置标签。(变量类型,变量名称,有时候甚至变量地址等等)
int a;
上述语句表明了一个变量名为a的变量的数据类型是int类型,在内存中占8位。
2.2.2赋值语句
可以连续使用赋值语句。
int a ;
int b;
int c;
a=b=c=10;
这样做是合法的,赋值将从右向左进行。
2.3其他C++语句
#include <iostream>
int main()
{
using namespace std;
int carrots;
cout<<"How many carrots do you have?"<<endl;
cin>>carrots;
cout<<"Here are two more.";
carrots=carrot+2;
cout<<"Now you have "<<carrots<<" carrots."<<endl;
return 0;
}
2.3.1使用cin
cin>>carrots;
这条语句的意思是,信息从cin流向carrots。<<运算符将字符串插入到到输出流中;输入时,cin使用>>运算符从输入流中抽取字符。
2.3.2使用cout
cout<<carror;
cout<<endl;
//
cout<<"Now you carrot"
<<carrots
<<" carrots"
<<endl;
2.3.3类简介
类是用户定义的一种数据类型。也就是说,需要描述的是他能够表示什么信息和可对数据执行哪些操作。
类对于对象就像类型对于变量。也就是说类定义描述的是数据格式及其用法,而对象就是根据数据格式规范创建的实体。
类描述了一种数据类型的全部属性(包括可使用他执行的操作),对象是根据这些描述创建的实体。
2.4函数
C++函数分为两种,有返回值和没有返回值的。在标准C++函数库中可以找到这两类函数的例子,也可以自己创建这两种类型的函数。
2.4.1使用有返回值的函数
有返回值的函数将生成一个值,而这个值可赋给变量或者在其他表达式中使用。
例如标准C++定义库中有一个名位sqrt()的函数,他的功能是计算平方根。
x=sqrt(6.25);
sqrt(6.25)被成为函数调用,被调用的sqrt函数称为调用函数。6.25成为函数参数,将作为参数把值传递给函数sqrt。
C++程序应当为程序中使用的每个函数提供原型,例如sqrt()函数的原型
double sqrt(double)
这里的第一个double是函数返回类型,第二个double是参数类型,说明了 sqrt()函数的返回类型是double类型的数据,而且传递的参数也是double类型。
使用库函数
C++库函数存储在库文件中,编译器在编译程序的时候,它必须在库文件中搜索您使用的函数。至于自动搜索哪些库文件,将因编译器而异。如果运行程序时得到一个消息
-》指出sqrt是一个没有定义的外部函数,则可能是由于编译器不能自动搜索数学库。如果在UNIX实现中遇到这样的问题,则需要在命令行添加lm选项
g++ sqrt.C -lm
2.4.2函数变体
有些函数需要多项信息,这些函数使用多个参数,参数之间用逗号隔开。
double pow(double,double0
有些函数没有返回值,也不接受任何参数
void rand(void)
关键字void表示rand函数没有返回类型(没有返回值),而且不接受参数
由于它不返回值,所有不能将该函数调用放在赋值语句或者其他表达式中。
2.4.3用户定义的函数
我们可以使用函数库里的函数,也可以在需要的时候自己设计函数去完成自己所需要的功能。
无论是有返回值,有函数参数,或者没有函数参数,无返回值,简洁的完成我们的目标才是我们设计函数的最终要求。
2.4.4在多函数程序中使用using编译指令
using namespace std;
在程序示例中,每个主函数中都包含这行代码这是因为我们在函数中使用了cout。
总之,让程序能够访问名称空间std的方法有很多种
》》将using namespace std;放在函数定义之前,让文件中所有的函数都能使用名称空间std中所有的元素。
》》将using namespace std;放在特定的函数定义中,让该函数能够使用名称空间std中所有的元素。
》》在特定的函数中使用类似 using std::cout这样的指令,而不是using namespace std;
让该函数能使用指定的元素
》》完全不使用编译指令using,在需要使用名称空间std中的元素时,使用前缀std::
std::cout<<"xxxxxx"<<std::endl;
2.编程练习
#include <iostream>
int main()
{
char name[20];
char address[20];
std::cout<<"Please input your name:"<<std::endl;
std::cin>>name;
std::cout<<"Please input your address:"<<std::endl;
std::cin>>address;
std::cout<<"Name:"<<name<<",Address:"<<address<<std::endl;
return 0;
}
2.
#include <iostream>
int main()
{
int d;
std::cout<<"Please input an distance in long:"<<std::endl;
std::cin>>d;
std::cout<<"The distance in code is:"<<d*220<<std::endl;
return 0;
}
3.
#include <iostream>
using namespace std;
void mice();
void run();
int main()
{
mice();
mice();
run();
run();
return 0;
}
void mice()
{
cout<<"Three blind mice"<<endl;
}
void run()
{
cout<<"See how they run"<<endl;
}
4.
#include <iostream>
using namespace std;
int main()
{
int age;
cout<<"Enter your age:"<<endl;
cin>>age;
cout<<"Your age have "<<age*12<<" months"<<endl;
return 0;
}
5.
#include <iostream>
using namespace std;
double reflect(double a)
{
return 1.8*a+32.0;
}
int main()
{
double b;
cout<<"Please enter a Celsius value: ";
cin>>b;
cout<<b<<" degree Celsuis is "<<reflect(b)<<" degree Fahrenheit."<<endl;
return 0;
}
6.
#include <iostream>
using namespace std;
double reflect(double a)
{
return 63240*a;
}
int main()
{
double b;
cout<<"Enter the number of light years : ";
cin>>b;
cout<<b<<" light years = "<<reflect(b)<<" astronomicla units."<<endl;
return 0;
}
7.
#include <iostream>
void show(int, int);
using namespace std;
int main()
{
int hour;
int minute;
cout << "Enter the number of hours: ";
cin >> hour;
cout << "Enter the number of minutes: ";
cin >> minute;
show(hour,minute);
return 0;
}
void show(int hour, int minute)
{
cout << "Time: " << hour << ":" << minute << endl;
}