-
类是一种规范,它描述新型的数据格式
-
对象是根据这种规范所构造的特定数据结构
-
C++ 通常使用自下向上编程方法,与 C 自顶向下的编程方法相反
-
泛型编程可以认为是一种不指定数据类型的实现方法,使用泛型编程的代码一般被称为模板,由模板生成实际代码的过程称为模板的具体实现。
-
C++ 最新的标准是 ISO/IEC 14882:2020,于2020年发布,该标准引入了许多新特性,如协程,模块等,可以查看c语言最新标准c22,C++20标准(c++标准手册) 官方最新版PDF_柳编的博客-CSDN博客
-
C++ 的输入与输出
/* * 不同于C语言的stdio.h库,C++使用iostream库作为交互库 * C++使用函数 cout << "string" 进行内容输出 * cout << endl 可以建立新行,同样的,也可以使用转义符'\n' * 当然C++不仅能输出字符串,也能够输出数值类型 */ #include
using namespace std; int main() { // //你可以使用cout输出字符串,可以连续输出 // cout << "因为还跟着输出了endl,所以会新起一行!" << endl; // cout << "好帅啊!" << endl; // //当然也可以单独输出 // cout << "你真的好帅啊!"; // cout << endl; // cout << "你真的好帅啊12!"; // //你也可以使用C语言中的'\n' // cout << "\n"; // cout << "你真的好帅啊13!"; // //同样的,你可以用来输出变量,乃至于后面,你可以输出自定义数据类型 // int carrots = 25; // cout << carrots << endl; // cout << "carrots." << endl; // cout << "Now I have " << carrots << " carrots" << endl; // //现在我们来看看cin的用法,与cout相反,我们使用 cin >> 变量 作为输入 // int carrots; // cout << "Please input number of carrots:"; // cin >> carrots; // cout << "I have " << carrots << " carrots."; return 0; } -
C++ 的函数使用
/* * C++中使用函数的方法与C中类似 * 你可以使用标准库中的函数,当然你也可以使用自己的函数 */ #include
#include using namespace std; // Function Definition void simon(int); int calculate(int); int main(){ // //求平方根函数 // double area; // cout << "Please input a number:"; // cin >> area; // double side; // side = sqrt(area); // cout << "side is " << side << endl; // //使用自己定义的函数,在main前声明,在main后实现,在main中调用 // simon(3); // // int result; // result = calculate(5); // cout << result; return 0; } void simon(int n){ cout << "This function printf " << n << endl; } int calculate(int n){ int result; result = n*n; return result; } -
C++ 中的变量命名一般使用下划线或者小驼峰,如name_of_student,或者nameOfStudent,并且C++ 的变量名不区分大小写,但是请不要这样使用,易读性和统一是命名变量唯二的标准
-
你也可以使用前缀n,c,str,b,p 等来说明变量的类型,增强可读性
-
C++ 中的数值类型
// // C++中的数值类型 // C++对比C语言,其变量的初始化多出了一种方式,int value(32); // 更为常用的,C++标准引入了新的变量初始化方式,即使用大括号 // int value = {num}; 将value初始化值设为num,若不写num而保留空括号,则默认初始化为0 // // #include
#include using namespace std; int main(){ // int n_int = INT_MAX; // short n_short = SHRT_MAX; // long n_long = LONG_MAX; // long long n_llong = LONG_LONG_MAX; // // cout << "int is " << sizeof (int ) << " bytes" << endl; // cout << "short is " << sizeof (short ) << " bytes" << endl; // cout << "long is " << sizeof (long ) << " bytes" << endl; // cout << "long long is " << sizeof (long long) << " bytes" << endl; // // cout << "Maxinum values:" << endl; // cout << "int: " << n_int << endl; // cout << "short: " << n_short << endl; // cout << "long: " << n_long << endl; // cout << "long long: " << n_llong << endl; // // cout << "Minium int values = " << INT_MIN << endl; // cout << "Bits per byte = " << CHAR_BIT << endl; // int value(32); // cout << value << endl; // //char 类型的有无符号根据实现定义 // char ch; // unsigned char u_ch; // signed char s_ch; // char16_t ch1 = u'q'; // char32_t ch2 = U'\U0000222B'; // // cout << UCHAR_MAX << endl; // cout << SCHAR_MAX << endl; // cout << ch1 << endl; // cout << ch2 << endl; // //浮点数分为32位float,64位double,常用的128位long double // //他们的默认小数点保留位可以在头文件cfloat中查看 // float fnum1 = 1.23e3; // double fnum2 = 1.25e10; // long double fnum3 = 1.26e18; // // //浮点常量的定义,默认定义为double // float a = 1.25f; //使用后缀f来定义为float类型 // long double b = 1.2l; //使用后缀l来定义long double类型 // //运算符的重载 // cout << 9/5 << endl; // cout << 9.0f/5.0f << endl; // cout << 9l/5l << endl; // cout << 9.0/5.0 << endl; return 0; } -
cout函数输出同一个数值的不同数据形式
#include
using namespace std; int main() { // cout输出同一个数的不同格式 cout << hex << 42 << endl; cout << oct << 42 << endl; cout << dec << 42 << endl; return 0; } -
cout函数的put方法输出字符
#include
using namespace std; int main() { // cout的put方法 char ch = 'K'; cout.put(ch); return 0; } -
char的有无符号定义
#include
#include using namespace std; int main(){ //char 类型的有无符号根据实现定义 char ch; unsigned char u_ch; signed char s_ch; char16_t ch1 = u'q'; char32_t ch2 = U'\U0000222B'; cout << UCHAR_MAX << endl; cout << SCHAR_MAX << endl; cout << ch1 << endl; cout << ch2 << endl; return 0; } -
C++ 中的类型转换
#include
#include using namespace std; int main(){ float fnum = 53.2; //类型强制转换 int convert = static_cast <int> (fnum); cout << convert << endl; //使用强转显示ASCII值 int decchac = static_cast <int> ('O'); cout << decchac << endl; return 0; }
-
C++ 中的其他类型
// // 除去数值类型以外的其他类型数据 // #include
#include using namespace std; int main(){ // // 数组的定义 // int array[12]; //定义一个int型数组,数组名array,数组元素数量12 // // 数组的初始化 // int array_init[3] = {1, 2, 3}; // int array_zero[100] = {0}; // int array_nofull[5] = {1, 2}; // int array_nonum[] = {1, 2, 3, 4}; // int array_nothing[] = {}; // // char tlifs[4] = {'h', 'i', 112, '// //char slifs[4] = {'h', 'i', 1122211, '// char str[] = {'h', 'e', 'l', 'l', 'o', '//'};'}; //Error, 1122211越界'}; // cout << strlen(str) << endl; // // // cin的按行输入 // char name[20] = {}; // // 第一种方式 // cout << "Please input your name:"; // cin.getline(name, 20); // cout << name << endl; // // 第二种方式 // cout << "Please input your name:"; // cin.get(name, 20).get(); // cout << name << endl; // // C++中的string类 // string str1; // string str2 = "Hello world!"; // // cout << "Please input your name:"; // cout << str2[2] << endl; // cout << str1 << endl; // // cin >> str1; // string str3 = str1 + str2; // cout << str3 << endl; // // // 其他类型的字符串字面值 // wchar_t title[] = L"Chief"; // char16_t name[] = u"Snake"; // char32_t car[] = U"Tesla"; // // // C++的原始字符串 // // 使用R来标识,不代表转义字符等,而直接就是字符串 // cout << R"(JIm "King" Tutt use "\n" instead of me)" << endl; // // 使用+*来代表字符串的开头和结尾,以使用() // cout << R"+*("(Who wouldn't?)" , she whispered.)+*" << endl; // // 结构体 // string name; // int age{}; // float grade{}; // struct student{ // }; // // student me; // me.age = 17; // me.name = "KillerDJ"; // me.grade = 98.5; // // cout << me.grade << me.name << me.age << endl; // // // 结构体的初始化 // "赵子龙", // 17, // 95.5 // student you = { // }; // // student him = {}; // 全部置0 // // 结构体成员赋值在C++中是允许的 // him = you; // cout << him.age << endl; // // // 结构数组的定义 // {"赵丽龙", 15, 89}, // {"彼得", 14, 66}, // }; // student others[100] = { // // cout << others[0].age << endl; // cout << others[2].age << endl; // // // 结构中的位字段 // unsigned int SN : 4; // unsigned int : 4; // bool goodIn : 1; // struct reg{ // }; // // reg stm32 = {14, true}; // cout << stm32.goodIn << endl; // // 联合 // // 联合可以定义多种不同的数据类型,但是只能存储其中一种 // //多用于单片机应用中 // unsigned int itype; // float ftype; // char ctype; // union type{ // }; // // type one{}; // one.itype = 100; // one.ftype = 120.5; // one.ctype = 'H'; // // cout << one.itype << endl; // cout << one.ftype << endl; // cout << one.ctype << endl; // // 枚举 // // 可以不定义变量名,只是用enum,省略week // Mond, // Tues, // Wenne, // enum week{ // Thurs, // Fri, // Satur, // Sun // }; // // week day; // day = Mond; // cout << day << endl; // // 因为Jan不是枚举中的值,所以不能定义 // //day = Jan; // day = Satur; // cout << day << endl; return 0 ; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)