1. 程式人生 > 其它 >spark streaming整合kafka中非聚合類運算如何和kafka保持exactly once一致性語義(冪等性方式)

spark streaming整合kafka中非聚合類運算如何和kafka保持exactly once一致性語義(冪等性方式)

繼承同名成員處理方式

問題:當子類與父類出現同名的成員,如何通過子類物件,訪問到子類或父類中同名的資料呢?

  • 訪問子類同名成員 直接訪問即可
  • 訪問父類同名成員 需要加作用域

示例:

class BaseTest {
public:
    BaseTest()
    {
        m_A = 100;
    }

    void func()
    {
        cout << "BaseTest - func()呼叫" << endl;
    }

    void func(int a)
    {
        cout << "
BaseTest - func(int a)呼叫" << endl; } public: int m_A; }; class Son : public BaseTest { public: Son() { m_A = 200; } //當子類與父類擁有同名的成員函式,子類會隱藏父類中所有版本的同名成員函式 //如果想訪問父類中被隱藏的同名成員函式,需要加父類的作用域 void func() { cout << "Son - func()呼叫" << endl; }
public: int m_A; }; void test01() { Son s; cout << "Son下的m_A = " << s.m_A << endl; //如果想訪問父類中被隱藏的同名成員函式,需要加父類的作用域 cout << "Base下的m_A = " << s.BaseTest::m_A << endl; s.func(); //如果想訪問父類中被隱藏的同名成員函式,需要加父類的作用域 s.BaseTest::func(); //當子類與父類擁有同名的成員函式,子類會隱藏父類中所有版本的同名成員函式
//如果想訪問父類中被隱藏的同名成員函式,需要加父類的作用域 s.BaseTest::func(10); } int main() { test01(); system("pause"); return EXIT_SUCCESS; }

總結:

  1. 子類物件可以直接訪問到子類中同名成員
  2. 子類物件加作用域可以訪問到父類同名成員
  3. 當子類與父類擁有同名的成員函式,子類會隱藏父類中同名成員函式,加作用域可以訪問到父類中同名函式