//基本输入输出
#include <iostream>
// 引入操作符头文件
#include <iomanip>
//使用标准名称空间中的变量名,不引入时,得这么写:std::cout << std::hex<< 3.4<< std::endl;
using namespace std;
int main()
{
//变量赋值的方式
int a(0);
int b = 1;
int c = {0};
int d{0};
//无符号整数,其值大于0,小于2^8或2^16
unsigned int e = 100;
unsigned int f = 50;
cout << (e - f) <<'\n'; //输出完换行
cout << (f - e) <<'\n'; //结果是一个很大的数
// <<表示将内容插入到输出设备
cout << "Hello World\n";
cout << a;
cout << b;
cout << c;
cout << d << '\n';
int g;
// >> 表示提取输入设备中的输入值值到变量g中
cin >> g;
cout << g << endl;
//设置域宽和精度
cout << setw(3) << setprecision(3) << 3.1415926;
return 0;
}
// 枚举值:
#include <iostream>
#include <iomanip>
using namespace std;
using dou = double; //指定标识符dou代表double类型
typedef float flo; //指定标识符flo代表float类型
//enum 枚举类型名 {变量值列表};默认情况下,SUN=0,MON=1,...,SAT=6,称为不限定作用域的枚举类型
enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};
int main()
{
dou e = 12.0;
cout << e <<endl;
//声明一个枚举类型的变量week
Weekday week;
//定义一个枚举类型的变量w,并给他赋值
enum Weekday s = SUN;
cout << s <<endl;
for(int count = SUN;count <= SAT; count ++ ){
week = Weekday(count); // 将整数值赋值给枚举类型时需要强制类型转换
if (week == s)
cout << "今天是周日,其枚举值为:" << week <<endl;
else{
cout << "今天不是周日" << endl;
}
}
return 0;
}
// auto和decltype关键字
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
//编译器自动进行类型推断
int a = 0;
int b(1);
auto c = a +b;
cout << c <<endl;
double i = 5;
//decltype关键字,定义变量j的初始值为2,且类型与i相同。
decltype(i) j = 2;
cout << j;
return 0;
}
// 函数的定义与使用
#include <iostream>
using namespace std;
int main()
{
//先进行调用前的原型声明
double square(double x, int n);
square(2,5);
return 0;
}
//求x的n次方的函数
double square(double x,int n){
double result = 1.0;
while(n--){
result *= x;
}
cout << result;
return result;
}
//引用
#include <iostream>
using namespace std;
int main()
{
//先进行调用前的原型声明
double square(double a, double b);
double x = 2,y=5;
swap(x, y);
cout << x << ", " << y;
return 0;
}
//使用引用可以实现双向传递
void swap(double & a,int & b){
double t = a;
a = b;
b = t;
}
//内联函数
#include <iostream>
using namespace std;
const double PI = 3.14159265358979;
//内联函数
inline double Area(double radius){
return PI * radius * radius;
}
int main()
{
double r = 5.0;
//建议编译器将PI * radius * radius直接替换到这里
double result = Area(r);
cout << result;
return 0;
}
//带默认参数值的函数
#include <iostream>
using namespace std;
//带默认参数的函数
int add(int x = 5, int y = 6){
return x + y;
}
int main()
{
cout << add(10,20) << endl;
cout << add(10) << endl;
cout << add() << endl;
return 0;
}
// C++11中的constexpr函数
#include <iostream>
using namespace std;
//constexpr函数
constexpr int get_size(){
return 20;
}
int main()
{
constexpr int foo = get_size();
cout << foo << endl;
return 0;
}
// 构造函数及其初始化
#include <iostream>
using namespace std;
class Clock{
//这里的a是私有的
double a = 5.0;
public:
//void setTime(int newH, int newM, int newS);
void showTime(){
cout << hour <<endl;
cout << minute <<endl;
cout << second <<endl;
};
//int b = 10;
//定义构造函数
Clock(int newH, int mewM, int newS){
hour = newH;
minute = mewM;
second = newS;
};
//类的私有成员,如果构造函数没有进行初始化,则使用这里的类内初始值。
private:
int hour = 0, minute = 0, second = 0;
};
int main()
{
// 定义对象,并调用构造函数进行初始化
Clock myClock (1 ,2, 5);
// cout << myClock.b << endl;
myClock.showTime();
return 0;
}