它会在1:13:00自动启动.
https://youtu.be/uHSLHvWFkto?t=4380
作为C/C++的新程序员听完这个完全扭曲的思维方式.随着他是一个专业人士,我应该采取的建议,但我需要一些清晰度.从网站,视频到书籍,我已经看到使用公共变量是一个不好的做法,但从我从这个视频中得到的其他的说法.在视频中,他使用一个结构,默认情况下它具有访问修饰符“public”vs具有默认访问权限“private”的类.有没有什么我不能正确理解这里.
我不知道该怎么办.如果我让我的变量公开不会冒险模糊?他说他会自动为某人编码格式的方式是让我哈哈!我应该真正使用哪一个?什么时候和为什么?
解决方法
现在,在面向对象编程(OOP)中,拥有公共数据成员(变量)并不被认为是好的做法,因为这使得所有代码都依赖于类的内部,从而打破了原始的OOP原则,…
圣洁神圣的封装
封装是一种编码哲学,它规定一个类应该在一个紧密的实体中同时管理数据和代码.也就是说,您不访问数据指向,而是使用类中的方法来处理此类数据.这具有几个设计优点,例如,您将知道,除了类中的代码之外,没有任何代码可能会包含有关操纵此类信息的错误.
现在,get()和set(),或者称为访问器,都是一个完整的谎言!随着访问者,你欺骗自己,认为你尊重封装,当你打破它!它增加了膨胀,不必要的冗长,错误以及除封装之外的一切.不带有一个没有签名的getAge()和void setAge(unsigned)的Person类,它具有一个无符号的getAge()和一个void incrementAge(),或者你想调用它.
现在,你的问题的核心是…
“平原”结构
不一定需要封装.虽然您应该(通常)不要在头文件(再次,至少一些封装)上执行此操作,您可以创建对单个翻译单元是私有的静态纯旧结构体.我的建议是使他们甚至比他们已经“老”,即
>所有数据成员都是公开的.
>没有办法.
>没有构造函数(隐式的除外).
>继承始终是公共的,只允许从其他普通的旧结构体.
>我重复一遍,不要把它们放在头文件上!
现在,对于简单的旧结构的另一个用法是(讽刺的是)Metaprogrammatic导出的constexpr数据和类型,也称为modern-hardcore-template-Metaprogramming-without-having-to-type-public-everywhere,例如…
template<bool B,typename T> struct EnableIf {}; template<typename T> struct EnableIf<true,T> { typedef T type; }; template<bool B,typename T> using SFINAE = typename EnableIf<B,T>::Type;