小编Jac*_*lue的帖子

C ++模板专业化和子类化

我想知道是否可以让模板专门化接受一个类及其子类。像这样:

class A {};

class B : public A {};

template <typename T>
void foo(const T& t) {
  printf("T");
}

template <>
void foo(const A& t) {
  printf("A");
}

int main(int argc, char** argv) {
  B b;
  foo(b);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当前它输出“ T”是因为b没有自己的模板特化功能,因此它默认打印为“ T”。我想知道是否可以B使用的模板专门化,A因为B是的子类A。还是那不是一回事?

注意:由于某些要求,我无法使用复制/移动。

注意:如果我不需要更改AB,我也希望它先让我们看看有什么可能。

c++ inheritance templates

5
推荐指数
1
解决办法
185
查看次数

如何让文本元素显示“&lt;”

我当前正在绘制 SVG,并且想要一个包含小于符号的文本元素。当我尝试时:

<svg xmlns="http://www.w3.org/2000/svg">
  <text x="40" y="40" fill="Black" font-size="25" font-weight="bold" font-family="courier new" ><</text>
</svg>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:“StartTag:无效的元素名称”

xml svg

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

标签 统计

c++ ×1

inheritance ×1

svg ×1

templates ×1

xml ×1