C ++委托模式说明

时间:2015-12-03 02:34:00

标签: c++ class oop namespaces using

我需要一些帮助来理解以下代码的技术细节,这些代码的目的是委托后端,以及为什么它最终不会在VS中编译但在UNIX命令行中正常工作:

#pragma once

#include <iostream>
#include "Tree.h"
using namespace std;

template <class T>
class SymTab : public Tree<T>
{
    using Tree<T> ::Insert;
    using Tree<T> ::Lookup;
    using Tree<T> ::Remove;
    using Tree<T> ::Write;
    using Tree<T> ::Set_Debug_On;
    using Tree<T> ::Set_Debug_Off;
};

我知道代码以某种方式使用命名空间,但我从未在任何Tree文件中实际声明。而且,为了构造,我是否正确地假设因为SymTab类中没有构造函数,它会自动调用超类的构造函数?

最后,此代码在UNIX下编译,但在VS中它会出现以下错误:

SymTab<MyClass>::[function name]: cannot access private member declared in class 'SymTab<MyClass>'

然而一切似乎都是公开的。是什么给了什么?

0 个答案:

没有答案