鉴于:
namespace A {
class Foo;
class Bar;
}
namespace B {
class Foo;
class Bar;
}
我想在A号或B号上模仿一个班子,这样就能够做到以下几点:
template<name> class C {
name::Foo* foo;
name::Bar* bar;
}
能否直接做到这一点,或者我是否需要制造一种带有碎片的平级结构?
鉴于:
namespace A {
class Foo;
class Bar;
}
namespace B {
class Foo;
class Bar;
}
我想在A号或B号上模仿一个班子,这样就能够做到以下几点:
template<name> class C {
name::Foo* foo;
name::Bar* bar;
}
能否直接做到这一点,或者我是否需要制造一种带有碎片的平级结构?
你可以在一个名称空间上打上模板。 如果你能够重新使用一个类别(很可能是公共属性/统计方法),那么你可以将这一类别作为半工作方式加以模仿。
无,模板不能在名称空间中被低估。
在我有限的知识下,我认为,这一would是一种有用的工具,似乎是一种在名称空间和模板之间存在的关系:。
在上述例子中,我将使用斜体而不是名称空间(I ,struct
,>。 由于缺席,其准入是“公开的”。 下面应是一个完全可编纂的例子:
#include <iostream>
// Replaces namepace A from above.
templates
struct Option1 {
class Foo;
//Example function, too.
void myFunc() {
std::cout << "Hello!
";
}
};
// A second Option for example.
struct Option2 {
class Foo;
void myFunc() {
std::cout << "Hola!!
";
}
};
// Can be in .cpp file
class Option1::Foo {
public:
Foo() { display(); }
void display() {
std::cout << "Option 1.
";
}
};
class Option2::Foo {
public:
Foo() { display(); }
void display() {
std::cout << "Option 2.
";
}
};
模板如下:
// The typename C would need class Foo
template <typename C>
class OptionSelect : public C
{
typename C::Foo* foo;
public:
OptionSelect() {
foo = new typename C::Foo();
}
};
int main() {
OptionSelect<Option1> opt1;
OptionSelect<Option2> opt2;
opt1.myFunc(); // Provided that template had myFunc
opt2.myFunc();
return 0;
}
其结果如下:
Option 1.
Option 2.
Hello!
Hola!!
我从here继承一个模板类别的想法是,尽管我没有像我这样界定myFunc(
I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...
I have been searching for sample code creating iterator for my own container, but I haven t really found a good example. I know this been asked before (Creating my own Iterators) but didn t see any ...
Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...
I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?
Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...
Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...
I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...
Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?