相关疑难解决方法(0)

如何从C++对象获取类名?

是否有可能获得对象名称?

#include<cstdio>

class one {
public:
    int no_of_students;
    one() { no_of_students = 0; }
    void new_admission() { no_of_students++; }
};

int main() {
    one A;
    for(int i = 0; i < 99; i++) {
        A.new_admission();
    }
    cout<<"class"<<[classname]<<" "<<[objectname]<<"has "
        <<A.no_of_students<<" students";
}
Run Code Online (Sandbox Code Playgroud)

在哪里我可以取名字,像

[classname] = A.classname() = one
[objectname] = A.objectname() = A
Run Code Online (Sandbox Code Playgroud)

C++是否提供了实现此目的的任何机制?

c++ class

50
推荐指数
6
解决办法
14万
查看次数

C++模板黑魔法

这只需要用g ++工作.

我想要一个功能

template<typename T> std::string magic();
Run Code Online (Sandbox Code Playgroud)

这样:

Class Foo{}; magic<Foo>(); // returns "Foo";
Class Bar{}; magic<Bar>(); // returns "Bar";
Run Code Online (Sandbox Code Playgroud)

我不希望这是通过专业化来完成的(即必须为每种类型定义魔法.我希望在这里拉出一些宏/模板黑魔法.任何人都知道怎么做?)

谢谢!

c++ templates

5
推荐指数
2
解决办法
3633
查看次数

与Java的this.getClass()。getSimpleName();等效的C ++

在Java中,如果要使用对象类的名称,可以编写:

String myString = this.getClass().getSimpleName();
Run Code Online (Sandbox Code Playgroud)

C ++的等效功能是什么?也就是说,如何获取具有类名称的字符串*this

c++ java class names rtti

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

标签 统计

c++ ×3

class ×2

java ×1

names ×1

rtti ×1

templates ×1