我想在构造函数参数中使用推断类型作为我班级其余部分的模板参数.这可能吗?
像这样的东西:
class AnyClass
{
public:
template<Class C>
AnyClass(C *c) {
//class C is inferred by constructor argument
}
// constructor argument is used as argument in other template types
nestclass<C> myNestedClass;
void randomfunction(C *randonarg) {
}
}
Run Code Online (Sandbox Code Playgroud)
细节:
这就是事情.考虑到继承类的类型,我正在尝试初始化我的基类型.在下面的情况下,DerivedA继承自Base,但DerivedB继承自DerivedA,因此根据我的理解this,Base的构造函数(在DerivedA中找到)的值实际上是指向DerivedB的指针,因此推断类型Base将是DerivedB类型.但是我想在我的Base类的其余部分中使用这种类型,而不仅仅是将它限制在构造函数中.
class Base {
// type T derived from inheriting class
template<T>
Base(T *) {};
//like to use other places
void randomfunction(T *arg1) {
//does something with type T
};
}
class DerivedA : publicBase {
DerivedA() …Run Code Online (Sandbox Code Playgroud) 可以在编译时(在堆栈上)分配C++对象的内存.
MyClass mc;
Run Code Online (Sandbox Code Playgroud)
或动态(常见方法)
MyClass *mc = new MyClass();
Run Code Online (Sandbox Code Playgroud)
有没有什么方法,建成了C++语言,可如果一个对象是在静态或动态地分配一个区别?内置于我的意思是使用模板或关键字等(非编程/算法方法).
本质上,目标是"标记"未使用new运算符分配的对象(动态分配).