相关疑难解决方法(0)

C++预处理器#define-ing a keyword.标准是否符合标准?

这个关于bool和1的问题的评论中帮助解决正在进行的辩论:

符合标准的C++预处理器是否允许#define用户重新定义语言关键字?如果是这样,符合标准的C++预处理器是否允许这样做?

如果C++程序重新定义了一个语言关键字,那么该程序本身是否符合标准?

c++ c-preprocessor

20
推荐指数
3
解决办法
4458
查看次数

当我从公共成员函数返回引用时,为什么我可以公开私有成员?

在代码片段中,我能够访问类范围之外的私有成员变量.虽然不应该这样做,为什么在这种情况下允许?通过引用接收返回的私有变量是不好的做法?

#include <iostream>
#include <cstdlib>

class foo
{
    int x;
    public:
        foo(int a):x(a){}
        int methodOne() { return x; }
        int& methodTwo() { return x; }
};

int main()
{
    foo obj(10);
    int& x = obj.methodTwo();
    x = 20;              // With this statement, modifying the state of obj::x

    std::cout << obj.methodOne();
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

关于这种方法,返回类型传达了什么?而且我什么时候应该有这种类型的返回类型?

int& methodTwo() { return x; }
Run Code Online (Sandbox Code Playgroud)

PS:如果主题行含糊不清,我很抱歉.有人可以将其更改为与此处相关的内容.谢谢.

c++ function return-type

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

C++ 03中缺少typeof运算符?

我只是想知道boost如何实现BOOST_TYPEOF(在C++ 03中),这似乎是一个非常有用的工具.任何人有任何想法?

另外,我想C++ 03本身也有提供typeof运营商,尤其是当它已经具有sizeof(expr)必须要知道类型expr同时,否则怎么回事能告诉我们的大小,不知道类型?难道真的有可能知道大小,而不知道表达式的类型

如果它不知道类型,那么编译器告诉我们什么(如果不是类型)的大小?我的意思是,对编译器(以及人类)也没有意义!sizeof(unknowntype)

c++ templates boost metaprogramming typeof

7
推荐指数
2
解决办法
1627
查看次数