一、cout/cin的应用:
源代码(cout_cin.cpp):
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char **argv)
{
int i = 0;
int a = 3;
int x = 0;
char b = 'b';
long c = 34567;
cout << "请输入一个整数:" << endl;
cin >> x;
cout << "该整数为:" << x << endl;
/* 下面第一条和第三条语句功能一样,endl代表着'\n' */
cout << "hello,xiongfeng!\n";
cout << "hello,world!";
cout << "hello,world!" << endl;
cout << "a = " << a << "," << "b = " << b << "," << "c = " << c <<
endl;
cout << "a = " << a << "\n" << "b = " << b << "\n" << "c = " << c <<
endl;
/* setw(num)中num表示需留出几个空格,右对齐 */
cout << "a = " << setw(10) << a << "\n" << "b = " << setw(10) << b <<
"\n" << "c = " << setw(10) << c << endl;
for (i = 0; i < 3; i++) {
cout << "hello = " << i << endl;
}
return 0;
}
编译:g++ cout_cin.cpp _Wall
运行:. /a.out
结果:
请输入一个整数:
123
该整数为:123
hello,xiongfeng!
hello,world!hello,world!
a = 3,b = b,c = 34567
a = 3
b = b
c = 34567
a = 3
b = b
c = 34567
hello = 0
hello = 1
hello = 2
二、函数的重载
源代码(overloading):
/*
* 重载:允许一个运算符用于不同场合,有不同的含义。也可以说一物多用
*C语言中在同一作用域中不能有同名的函数
*C++允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个
*数和参数类型不同。这就是函数的重载。即一个函数名多用
*/
#include <stdio.h>
#include <iostream>
using namespace std;
int max(int a, int b, int c);
float max(float a, float b, float c);
char max(char a, char b, char c);
int main(int argc, char **argv)
{
int max_int = 0;
float max_float;
char max_char;
int a = 0, b = 0, c = 0;
float d = 0, e = 0, f = 0;
char g, h, i;
cout << "请输入三个整数:" << endl;
cin >> a >> b >> c;
max_int = max(a, b, c);
cout << "三个中最大数为:" << max_int << endl;
cout << "请输入三个浮点数:" << endl;
cin >> d >> e >> f;
max_float = max(d, e, f);
cout << "三个中最大数为:" << max_float << endl;
cout << "请输入三个字符:" << endl;
cin >> g >> h >> i;
max_char = max(g, h, i);
cout << "三个中最大数为:" << max_char << endl;
return 0;
}
int max(int a, int b, int c = 6)
{
if (b > a)
a = b;
if (c > a)
a = c;
return a;
}
float max(float a, float b, float c)
{
if (b > a)
a = b;
if (c > a)
a = c;
return a;
}
char max(char a, char b, char c)
{
if (b > a)
a = b;
if (c > a)
a = c;
return a;
}
编译:g++ overloading.cpp _Wall
运行:. /a.out
结果:
请输入三个整数:
1 2 3
三个中最大数为:3
请输入三个浮点数:
3.4 4.5 6.3
三个中最大数为:6.3
请输入三个字符:
s c d
三个中最大数为:s
三、变量的引用类型
源代码(reference_function.cpp):
#include <iostream>
using namespace std;
void swap(int &a, int &b);
int main(int argc, char **argv)
{
int i = 3;
int j = 4;
cout << "i = " << i << "\n" << "j = " << j << endl;
swap(i, j);
cout << "i = " << i << "\n" << "j = " << j << endl;
return 0;
}
void swap(int &a, int &b) //引用做为函数参数
{
int tmp = 0;
tmp = a;
a = b;
b = tmp;
}
编译:g++ reference_function.cpp -Wall
运行:. /a.out
结果:
i = 3
j = 4
i = 4
j = 3
四、内置函数
源代码(inline_function.cpp):
/*
* 内置函数:在编译时将所调用函数的代码嵌入到主调函数中
* 使用方法:在函数的首行的左端加一个关键字inline即可
* 作用:使有些频繁调用的函数被调用的更快,加快程序的执行效率
* 因为调用函数时需要一定的时间.
*/
#include <iostream>
using namespace std;
inline int func(void);
int main(int argc, char **argv)
{
int a = 0;
int i = 0;
for (i = 0; i < 10000; i++) {
a = func(); //编译时将func函数体的代码代替func()
}
cout << "a = " << a << endl;
return 0;
}
inline int func(void)
{
int i = 0;
for (i = 0; i < 10; i++) {
;
;
;
}
return i;
}
编译:g++ inline_function.cpp -Wall
运行:. /a.out
结果:
a = 10
五、C++动态分配内存(new/delete)
原代码(new_delete.cpp):
#include <iostream>
#include <string.h>
using namespace std;
struct message {
char name[12];
int num;
char sex;
};
int main(int argc, char **argv)
{
message *p;
p = new message;
if(p==NULL){
cout << "内存分配失败!" << endl;
}
strcpy(p->name, "xiongfeng");
p->num = 1000;
p->sex = 'm';
cout << "name:" << p->name << endl;
cout << "num:" << p->num << endl;
cout << "sex:" << p->sex << endl;
delete p;
return 0;
}
编译:g++ new_delete.cpp -Wall
运行:. /a.out
结果:
name:xiongfeng
num:1000
sex:m
六、作用域运算符::
源代码(scope.cpp):
#include <iostream>
using namespace std;
/* 作用域运算符:: */
char a = 'b';
int main(int argc, char **argv)
{
int a = 2;
/*
* 在C/C++语言中,局部变量a会屏蔽全局变量a的值
* 所以在下行输出局部变量a的值为2,但使用作用
* 域运算符::后会输出全局变量a的值为'b'
*/
cout << "a = " << a << endl;
cout << "a = " <<::a << endl;
return 0;
}
编译:g++ scope.cpp -Wall
运行:. /a.out
结果:
a = 2
a = b
/*************************结束****************************/
--
/**************************************/
Name: Xiong Feng
E-mail:linux0818@gmail.com
MSN:linux0818@hotmail.com
QQ:23562033
Address: GuangZhou.China
/**************************************/
没有评论:
发表评论