C++是一种面向对象的程序设计语言,最初是由Bjarne Stroustrup在20世纪80年代早期开发的。它是C的扩展,增加了许多新的特性,例如类、继承、虚函数、多态等。
以下是C++0基础知识:
- 标准输入输出
标准输出使用cout,使用<<"输出。例如:
cout << "Hello World!" << endl;
标准输入使用cin,使用>>"输入。例如:
int num;
cin >> num;
- 变量和类型
C++中有多种基本数据类型,例如int、double、float、char等等。要声明一个变量,需要指定类型和名称,例如:
int x;
double y;
char c;
- 控制流语句
C++中有if-else语句、while循环、for循环等控制流语句。例如:
if (x > 0) {
cout << "x is positive" << endl;
} else {
cout << "x is not positive" << endl;
}
while (x < 10) {
cout << x << endl;
x++;
}
for (int i = 0; i < 10; i++) {
cout << i << endl;
}
- 函数
C++中可以定义和调用函数。函数有返回值和参数,例如:
int add(int a, int b) {
return a + b;
}
int result = add(3, 4);
- 数组(详细去看0基础都可以学费c++数组的使用-CSDN博客)
C++中可以定义数组,数组是一个相同类型的元素集合。例如:
int arr[5] = {1, 2, 3, 4, 5};
什么?不够冷??
以下是一些C++的非常非常冷的知识(冬天冷++):
- 指针运算符
除了常见的取地址符&和解引用符*,C++还有几个其他的指针运算符。例如:
- 指针加减:可以将指针加上或减去一个整数,以访问指针指向的不同位置。
int arr[5] = {1, 2, 3, 4, 5};
int* ptr = arr;
cout << *(ptr+2) << endl; // 输出3
- 指针比较:可以比较两个指针的大小关系,以判断是否指向同一块内存或者哪一个指针更靠前。
int arr[5] = {1, 2, 3, 4, 5};
int* ptr1 = &arr[1];
int* ptr2 = &arr[3];
cout << (ptr1 < ptr2) << endl; // 输出1 (true)
- 右值引用
C++11引入了右值引用的概念,可以将一个值的引用限制为只能绑定到右值上。右值引用一般用来实现移动语义和完美转发。例如:
void foo(string&& str) {
// 使用右值引用的字符串
}
foo("hello"); // 将字符串"hello"作为右值传递给foo函数
- 模板函数的偏特化
C++中的模板函数可以使用偏特化的技术,针对某些特定情况提供特殊的实现。例如:
template<typename T1, typename T2>
void foo(T1 t1, T2 t2) {
// 一般情况的实现
}
template<typename T>
void foo(T t1, int t2) {
// t2为int类型的特殊实现
}
foo(1.0, 2); // 调用一般实现
foo("hello", 2); // 调用针对int的特殊实现
- lambda表达式
C++11引入了lambda表达式,可以用来创建匿名函数。lambda表达式可以捕获外部变量,并且可以指定返回类型。例如:
int x = 5;
auto f = [=]() -> int {
// 捕获x,并返回x的平方
return x*x;
};
cout << f() << endl; // 输出25
- 静态断言
C++11引入了静态断言的概念,可以在编译时检查某些条件是否成立,如果不成立则会产生编译错误。静态断言语法为static_assert(条件表达式, 错误信息),例如:
static_assert(sizeof(int) == 4, "int必须是4个字节"); // 如果int不是4个字节,则编译错误
以上是一些C++的冷知识,了解这些知识可以让开发者更深入地理解C++语言。
好了剩下的我不会了😊😒(;´д`)ゞ