我刚刚了解了 typedef。假设我有一个实例:
private:
typedef std::string int doubles abc;
当我创建实例 abc 的访问器时:
returnType get(){...}
我应该在 returnType 中放什么?是 abc 还是数据类型?谢谢
我刚刚了解了 typedef。假设我有一个实例:
private:
typedef std::string int doubles abc;
当我创建实例 abc 的访问器时:
returnType get(){...}
我应该在 returnType 中放什么?是 abc 还是数据类型?谢谢
我不确定你想在这里做什么。您typedef
的语法无效,并且“双打”不是 C++ 类型(但可能只是一个错字)。有效语法的示例是:
typedef std::string abc;
typedef int foo;
...
然后您可以使用typedef
in 函数签名,就像其他类型一样:
abc getValue();
虽然如果你想在公共成员函数中使用它,你应该把它放在你的类typedef
的一部分。public
而且你应该知道,你的类之外的代码总是必须在typedef
你的类名前面加上前缀,除非它typedef
再次被 'd 。
class SomeClass {
public:
typedef std::string foo;
};
// Somewhere outside SomeClass
SomeClass::foo bar = ...
typedef SomeClass::foo localFoo;
localFoo fooBar = ...;
除此之外:typedef
不提供任何方式让变量代表一种以上的类型。C++ 是一种静态类型语言,所以这不可能直接实现。但是,您可以:
union
和一些鉴别器来存储它当前存储的类型void*
和铸造 -不推荐!boost::variant
等boost::any
编辑:最后,关于您使用术语“实例”:它通常用于指代类的实例,即属于类的特定对象。您的意思是“成员变量”。