static-cast

    1热度

    2回答

    请考虑以下示例代码。 #include <iostream> using namespace std; class base { public: void func() { cout << "base::func()" << endl; } }; class derived : public base { p

    0热度

    1回答

    我在制作需要由第三方库使用的回调包装类方法时遇到了一些麻烦; JackAudio library。 我已经能够为需要两个参数的JackAudio回调函数创建一个包装。 我只是在创建需要const char *作为参数的特定函数的回调函数时遇到问题。 到目前为止,我已经能够使JackAudio库jack_set_sample_rate_callback功能使用自定义类,可以像这样执行: SoundC

    1热度

    1回答

    背景: 我建立一个物理引擎,在C++中,计算一个正的引力变化笛卡尔空间中的身体系统,然后将其转换为任何预定义的坐标系统。最终目标是使起始坐标系统成为任意角度(在坐标系统'n'中而不是笛卡尔坐标系中计算),但这是一个遥远的目标。 问题: 由于坐标系被认为是可互换的,我已经做了笛卡尔坐标系延伸的基部坐标系统: class CoordMember { } class CoordState {

    0热度

    1回答

    如果我们看到下面的代码,fun函数会将C的对象转换为B的对象并调用B的自己的函数。它怎么不给segm过错。我认为这会导致崩溃。 我的程序没有崩溃。任何人都可以解释为什么它工作正常。 #include<iostream> using namespace std; class A{ public: A() {cout<<"A's Con\n"; } ~A() {cout<<"

    1热度

    4回答

    请注意以下代码。据我所知,dynamic_cast比static_cast慢。因为它在运行时评估类型。 我的疑问是,如果我们使用typeid()的static_cast作为下面,它将需要相同的时间作为动态演员? 它会比dynamic_cast更快吗? class Shape { public: virtual ~Shape(){} }; class Circle : public

    1热度

    1回答

    有什么东西我不明白我希望你注意下放,请检查这些代码片段: template< typename DerivedClass > class construction_management { city* this_city; public: construction_management() { this_city = static_cast< cit

    4热度

    2回答

    我有点困惑如何将对象传递给pthread_create函数。我发现很多零散的信息关于转换为void *,将参数传递给pthread_create等,但没有任何关联它们。我只是想确保我将它们联系在一起,并没有做任何愚蠢的事情。假设我有以下线程类: 编辑:固定错误匹配static_cast。 class ProducerThread { pthread_t thread; pthr

    -1热度

    1回答

    的问题是非常简单的,它是一般安全静态浇铸(或一些其他剧组)从 std::vector<Foo> 到 std::vector< const Foo > 二进制明智的,我不明白为什么本地类型会有所不同,毕竟const是一种语言的限制,不应该影响元素的大小,还是让我觉得 我可以做 std::vector< const Foo >& someFunc() { std::vector<F

    5热度

    4回答

    这是我的问题。我有一个基类和一个派生类,它覆盖了基类中的一些方法。为简单起见考虑下面的例子: struct base { virtual void fn() {/*base definition here*/} }; struct derived : base { void fn() {/*derived definition here*/} }

    3热度

    3回答

    行,所以我试着这样做 int b; char x = 'a'; //Case 1 b = static_cast<int>(x); std::cout<<"B is : "<<b<<std::endl; //Case 2 b = *(int*)&x; std::cout<<"B is changed as :: "<< b <<std::endl; 现在我知道的情况下,2,