在类范围声明typedef是不好的做法吗?为每个函数声明它们以确保没有人包含该文件然后创建具有相同名称的东西更好吗?
例如
typedef std::vector<int>::size_type vec_int;
Run Code Online (Sandbox Code Playgroud)
在我的一些标题中会有用,因为在某些类中有许多使用此类型的函数,但另一方面我必须将它放在标题中,不是吗?或者我可以把它放在源文件的顶部?
如果我有一个继承自另一个类的类,并且只有这个类必须使用某个变量,这是更好的做法吗?让所述变量在基类中被"保护",或者将其变为私有并为其提供受保护的getter?
我听说过相互矛盾的事情.我的老师告诉我总是使用吸气剂,而其他人告诉我,在任何级别使用吸气剂都会发现糟糕的程序设计.真正的答案是什么?我觉得两者都是不合逻辑的极端.
另外,如果getter和setter是糟糕的程序设计,为什么呢?
是否有任何资源可以教会我如何构建代码?
当有问题的getter返回引用时访问成员变量有多贵?
例如,如果你有一个需要经常使用这种访问器的类,那么将所述引用存储在需要使用它的类中并简单地初始化一次会有多高效?
我有一个类(A),它必须包含两个文件,类X和类Y.不幸的是,类Y还需要在它的头文件中包含类X,因为构造函数将一个指向类X类型的指针作为参数.
潜在的问题是会出现链接器错误吗?因为A类现在有两个X类副本,一个需要使用,一个来自Y类.这就是头部保护没用的情况.我的问题是 - 这纯粹是一个结构性问题还是有办法解决这个问题?
我真的更愿意不在Y类的头文件中包含任何内容,以防我想在其他任何内容中包含THAT,但是由于函数原型,它是否必要?
我有两个类,A和Bar,都共享一个基本上有Foo*foo的头文件.A类实例化对象Bar*bar.这很好用.但是,如果我进行对象的实例化
Bar* bar = new Bar();
Run Code Online (Sandbox Code Playgroud)
当bar尝试使用foo执行某些操作时,我收到了访问冲突.为什么这会有所不同?
如果我不使用'新',它可以正常工作.这是错误:
Unhandled exception at 0x003c17ea in Direct3DTutorial7.exe: 0xC0000005: Access violation reading
location 0x00000000.
Run Code Online (Sandbox Code Playgroud)
谢谢.
我被告知我不能在类函数中使用'this'关键字.我来自c#,我已经习惯了这个工作,但是编译器告诉我它只能在非静态成员函数中使用.
D3DXVECTOR3 position;
void Position(D3DXVECTOR3 position)
{
this.position = position;
}
Run Code Online (Sandbox Code Playgroud) 通常认为将参数作为指针而不是作为值传递时更好吗?显然它在很大程度上取决于情况,但是当有选择时,使用指针会更好吗?
这只是出于记忆的原因吗?
如果它是真的,指针或引用,最好通过什么?
我知道这可能是非常主观的,但是当代码不必分成两个文件时,是否有任何通用规则?
例如,类是非常小的,还是文件只包含一些全局定义或静态函数?此外,在这些情况下,单个文件应该是.cpp文件还是.h文件?
当指针指向在同一个类中声明的内容时,我是否正确地认为如果复制这样一个对象,即有多组指针,但它们都指向同一个对象?
这是否意味着在其他类实例中还有其他对象已创建但没有任何指向?
作为一个附带问题,我是否会认为共享指针将所有类指向一组对象但是以安全的方式?
c++ ×10
coding-style ×3
member ×1
methods ×1
non-static ×1
oop ×1
performance ×1
pointers ×1
reference ×1