1。c++中的class Solution是什么意思?
声明一个解决方案的类,类中用来存放解决所有这类问题的函数方法,变量
class表示声明一个类,单词Solution是“解决方案”的意思。那么class Soulution 就是声明出一个解决方案的类,类中用来存放关于解决这一问题所需要的各种函数/方法、变量。
为什么要这样做呢,简单说来就是:
- 抽象层面上更符合逻辑——针对某一问题的解决方案,方案里可以有若干成员变量和成员函数
- 生成若干实例互不干扰——因为每个类的实例内部的(非静态)成员变量是独立的
- 更“干净”,即不会污染到程序其他地方的代码——类中的成员不会与类外其他标识符冲突
一个类(生成的对象)可以理解成函数+函数运行需要的环境。如果函数不需要额外的运行环境,也可以把函数设置成静态的。
具体来说,比如我们有一个问题,需要用函数funcA()解决,而funcA()又需要调用函数funcX(), 而完成这个问题可能还需要一个int 型的变量val。
简单的C语言文件可能会这样写:
// solution.c
int val;
void funcX() { /* ... */ }
void funcA() { /* ... */ }
这样的话变量val还有函数funcA()和funcX()都是全局的,如果和其他很多很多的代码放在一起就有名称冲突的可能。不过在C++中,我们可以把它们放在一个类里面:
// solution.cpp
class Solution {
private:
int val;
void funcX() { /* ... */ }
public:
void funcA() { /* ... */ }
};
因为需要对外可用的只有funcA这个接口,所以只把它设置成public就好了 。
然后在需要调用的地方调用就好了,比如main 函数:
int main() {
Solution s;
s.funcA();
}
当然,如果是解决某一问题的解决方案,也不一定用Solution作为类名,比如SolveAngle、MatrixAdd之类的也可以。