小编Joa*_*rri的帖子

将"扩展方法支持"添加到C++的不正确的指针赋值技巧将来会成为一个_问题吗?

我将使用"C++扩展方法"向JNI jobjects添加"C++扩展方法"以使NDK代码更具可读性的解决方案,如(统一函数调用语法):

  • 子类我想要添加扩展方法的类.
  • 对于调用"扩展方法",使ExtensionsClass类型的指针指向OriginalClass - (尽管指向的对象不是ExtensionsClass).

重载很少,我们可以访问Original类的公共方法.

#include <iostream>

// Represents a class external to my source
class Person {
public:
    Person(){
        privateage = 20;
    }
    int age() { return privateage; }
private:
    int privateage;
    short anotherField;
};

class PersonExtensions : private Person {
public:
    inline int size() { return 5 + age(); }
    //NoFieldsOnExtensionClass
};

int main() {

    Person person;

    PersonExtensions* pE = (PersonExtensions*) &person;
    std::cout << pE -> size() << std::endl;
    std::cout << (*pE).size() << std::endl;

    std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ extension-methods pointers

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

标签 统计

c++ ×1

extension-methods ×1

pointers ×1