小编sam*_*sam的帖子

本书的示例在类声明中使用“ explicit”关键字。无效吗?

我正在看一本根据标准C ++ 11讲授C ++的书。本书显示了一个将子类标记为的示例explicit

根据我的收集,这将使编译器检查与动态绑定有关的错误,并且override每当您覆盖虚拟函数时,还必须显式使用关键字,否则它将无法正常工作。我确实设置了一个小程序来对此进行测试,但出现错误。而且我从未见过explicit在其他任何地方都可以像这样使用关键字的示例。

这本书提供的信息不正确还是我只是错过了什么?我应该单独使用override关键字吗?

class base {
public:
    virtual void f() {
        cout << "Called from base" << endl;
    }
};

class derived explicit : public base {
public:
    void f() override {
        cout << "Called from derived" << endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ -std=c++11 main.cpp -o main.exe在终端上写给我以下错误:

error: expected unqualified-id 
class derived explicit : public base {
                   ^
Run Code Online (Sandbox Code Playgroud)

c++ class c++11

3
推荐指数
1
解决办法
62
查看次数

使用指针访问std :: string中的元素

如何使用指针访问std :: string中的各个元素?没有类型转换为const char *是否可能?

#include <iostream>
#include <string>
using namespace std;

int main() {

    // I'm trying to do this...
    string str = "This is a string";
    cout << str[2] << endl;

    // ...but by doing this instead
    string *p_str = &str;
    cout << /* access 3rd element of str with p_str */ << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ c++14

2
推荐指数
1
解决办法
73
查看次数

标签 统计

c++ ×2

c++11 ×1

c++14 ×1

class ×1