单选题
用哪个关键字定义模板类?
A
template
B
class
C
struct
D
base
答案解析
正确答案:A
解析:
好的,让我们来详细解析这道题目。
### 题目
用哪个关键字定义模板类?
A. template
B. class
C. struct
D. base
### 答案
A. template
### 解析
#### A. template
- **解释**:`template` 是 C++ 中用于定义模板的关键字。模板允许你编写通用的类或函数,这些类或函数可以适用于多种数据类型。
- **示例**:
```cpp
template
class MyTemplateClass {
public:
T value;
MyTemplateClass(T val) : value(val) {}
};
```
在这个例子中,`MyTemplateClass` 是一个模板类,可以使用不同的数据类型(如 `int`, `double`, `char` 等)来实例化。
#### B. class
- **解释**:`class` 是用于定义类的关键字。类是面向对象编程中的基本构建块,用于封装数据和方法。
- **示例**:
```cpp
class MyClass {
public:
int value;
MyClass(int val) : value(val) {}
};
```
这个例子中,`MyClass` 是一个普通的类,只能使用特定的数据类型(如 `int`)。
#### C. struct
- **解释**:`struct` 也是用于定义类的关键字,但在 C++ 中,默认情况下 `struct` 的成员是公有的,而 `class` 的成员是私有的。
- **示例**:
```cpp
struct MyStruct {
int value;
MyStruct(int val) : value(val) {}
};
```
这个例子中,`MyStruct` 是一个结构体,与 `class` 类似,但默认成员是公有的。
#### D. base
- **解释**:`base` 不是 C++ 中的关键字。在 C++ 中,继承关系通常通过 `public`, `protected`, 或 `private` 关键字来指定。
- **示例**:
```cpp
class BaseClass {
public:
int value;
};
class DerivedClass : public BaseClass {
public:
void printValue() {
std::cout << value << std::endl;
}
};
```
在这个例子中,`DerivedClass` 继承自 `BaseClass`,使用了 `public` 关键字来指定继承方式。
### 为什么选 A
- **原因**:只有 `template` 关键字可以用来定义模板类。模板类允许你在编译时指定不同的数据类型,从而实现代码的复用和灵活性。
