c ++如何实现std :: is_class

时间:2016-01-30 07:14:33

标签: c++

这是mac中std :: is_class的实现。我不明白" int _Tp :: *"的参数是什么。有人可以解释一下吗?什么是参数类型和参数名称是什么?感谢。

另一个问题是省略号。在C中,它在省略号之前至少需要一个参数,但在c ++中它可以只是省略号。我在哪里可以找到关于这部分的标准?

Class A{
  A(){
        System.out.println("A-Default");
  }
  A(String msg){
     System.out.println("A-With one Argument msg : " + msg );
  }
}
public Class B extends A{
    B(){
             super("Hi");  
             System.out.println("B-Default");
    }

    public static void main(String [] args){
          new B();
    }

}

Output : 

A-With one Argument msg : Hi
B-Default

1 个答案:

答案 0 :(得分:0)

要回答您的一个问题,__test(...)函数接受任意数量的任何参数。但它们无法使用。 va_start需要以前的参数才能工作,没有它就无法得到任何参数。

原因是__test可以与任何类型的参数一起使用,但实际上并未实现。这是有效的,因为该函数仅在编译时使用,不会发生实际调用。由于它被重载,编译器会根据使用的类型做不同的事情。