那么 C 语言也可能有类了哟
分类:闲扯
今天看到 C 语言委员会的提案 N1875,顿时有种「卧槽」的感觉,因为它的标题是:Adding classes to C。这要是通过了,那可真就变成名副其实的 C with Classes 了呀~
纵观提案全文,主要从 C++ 中吸收「类」的概念和用法,但是没有虚函数之类的东西。如果算上单独的「访问限制符」、「单一继承」提案,一个 C 语言的类,很可能类似于:
class Car: public Vehicle
{
public: // 这是单独的另一个提案引入的
// 构造函数
initCar() {
initVehicle(); // 需要显式调用父类构造函数
countWheels_ = 4;
}
// 构造函数
initCar(int speedMax, int countWheels) {
initVehicle(speedMax); // 需要显式调用父类构造函数
countWheels_ = countWheels;
}
// 析构函数
deleteCar() {
deleteVehicle(); // 需要显式调用父类析构函数
}
int getWheelsCount() const { // 也有 const 哟
return this->countWheels_; // 也有 this 指针
}
private:
int countWheels_;
};
使用时,构造写法有点奇怪,也没说构造失败会怎样,析构也需要手动显式调用:
Car car; // 相当于 initCar()
Car tank.initCar(80, 16);
tank.deleteCar(); // 析构函数需要显式调用
car.deleteCar();
从目前的样子看,这样的「类」更类似于语法糖。当然,这只是个提案而已,会不会最终被批准,还得拭目以待。
以上。
千万不要批准。
怎么感觉像Objective C。
为什么一直提示我评论中有敏感词汇...
前段时间法语的垃圾评论特别多,加了些 le la 这样的敏感词……可能是插件忽略掉了前后的空格,现在去掉了……