-
基本类型关键字:
- bool: 表示布尔类型,只能取true或false。
- char: 表示字符类型,用于存储单个字符。
- int: 表示整数类型,用于存储整数值。
- double: 表示双精度浮点数类型,用于存储小数值。
- void: 表示空类型,用于表示没有返回值的函数或指针。
示例:
bool isTrue = true; char ch = 'A'; int num = 10; double pi = 3.14159; void printMessage() { /* 函数体 */ }
-
控制流关键字:
- if: 用于条件判断,根据条件执行相应的代码块。
- else: 与if配合使用,用于在条件不满足时执行的代码块。
- switch: 用于多分支条件判断,根据不同的值执行相应的代码块。
- case: 与switch配合使用,用于定义不同的分支。
- while: 用于循环执行一段代码,只要条件满足就会一直执行。
- do: 与while配合使用,用于至少执行一次循环,然后根据条件判断是否继续执行。
- for: 用于循环执行一段代码,可以在指定的条件下重复执行。
- break: 用于在循环或switch语句中终止当前的循环或分支。
- continue: 用于跳过当前循环的剩余代码,继续下一次循环。
示例:
int x = 5; if (x > 0) { // 执行代码块 } else { // 执行代码块 } switch (x) { case 1: // 执行代码块 break; case 2: // 执行代码块 break; default: // 执行代码块 break; } for (int i = 0; i < 10; i++) { // 执行代码块 }
-
类和对象关键字:
- class: 用于定义类。
- struct: 用于定义结构体。
- private: 用于指定类的私有成员。
- public: 用于指定类的公有成员。
- protected: 用于指定类的保护成员。
- new: 用于在堆上动态分配内存,创建对象。
- delete: 用于释放动态分配的内存,销毁对象。
示例:
class MyClass { private: int privateVar; public: void publicMethod() { // 执行代码块 } }; struct MyStruct { int x; int y; }; MyClass* obj = new MyClass(); delete obj;
-
修饰符关键字:
- const: 用于声明常量,表示变量的值不能被修改。
- static: 用于声明静态变量,该变量在整个程序生命周期内保持存在。
- inline: 用于声明内联函数,将函数的定义直接插入到调用点处。
- virtual: 用于声明虚函数,允许在派生类中重写基类的同名函数。
- explicit: 用于声明显式构造函数,禁止隐式类型转换。
示例:
class MyClass {
public:
void printValue() const {
// 执行代码块
}
};
static int count = 0;
inline int addNumbers(int a, int b) {
return a + b;
}
class Base {
public:
virtual void printMessage() {
// 执行代码块
}
};
int main() {
MyClass obj;
obj.printValue();
count++;
int result = addNumbers(5, 10);
Base* basePtr = new Base();
basePtr->printMessage();
delete basePtr;
return 0;
}
在上面的示例中,定义了一个名为MyClass
的类,它包含一个名为printValue
的成员函数,该函数带有const
修饰符,表示它不会修改类的成员变量。
还定义了一个名为count
的静态变量,它在整个程序生命周期内保持存在。
函数addNumbers
被声明为inline
,这意味着函数的定义将直接插入到调用点处,以提高性能。
Base
类具有一个虚函数printMessage
,它允许在派生类中重写该函数。
在main
函数中,我们创建了一个MyClass
对象,并调用了printValue
函数。还对count
进行了自增操作,并调用了addNumbers
函数来执行加法运算。最后,创建了一个Base
类的指针,并调用了printMessage
函数,然后释放了内存。
-
类型转换关键字:
- const_cast: 用于去除const属性,允许对const变量进行非常量操作。
- dynamic_cast: 用于在继承关系中进行安全的向下转型。
- reinterpret_cast: 用于进行不同类型之间的强制转换。
- static_cast: 用于进行静态类型转换,包括基本类型和指针间的转换。
示例:
const int x = 5; int* y = const_cast<int*>(&x); *y = 10; // 修改了const变量的值 class Base { public: virtual void printMessage() {} }; class Derived : public Base { public: void derivedMethod() {} }; Base* basePtr = new Derived(); Derived* derivedPtr = dynamic_cast<Derived*>(basePtr); int num = 42; double* doublePtr = reinterpret_cast<double*>(&num); *doublePtr = 3.14; // 将int类型解释为double类型 int a = 5; double b = static_cast<double>(a);
请注意,以上只是简要示例,展示了修饰符关键字的基本用法。在实际编程中,关键字的使用会根据具体情况和需求而有所不同。