小编Ara*_*raK的帖子

C++是否为全局和类静态变量调用析构函数?

从我的示例程序看,在两种情况下看起来都会调用析构函数.它在什么时候调用全局变量和类静态变量的析构函数,因为它们应该在程序堆栈的数据部分中分配?

c++ destructor global-variables

50
推荐指数
2
解决办法
4万
查看次数

是否可以在Java中编写swap方法?

这是一个问题:编写一个交换两个变量的方法.这两个变量应该是原始的.它不需要是通用的,例如两个int变量.有办法吗?!

java swap primitive-types

49
推荐指数
4
解决办法
5万
查看次数

转换运算符如何在C++中工作?

考虑这个简单的例子:

template <class Type>
class smartref {
public:
    smartref() : data(new Type) { }
    operator Type&(){ return *data; }
private:
    Type* data;
};

class person {
public:
    void think() { std::cout << "I am thinking"; }
};

int main() {
    smartref<person> p;
    p.think(); // why does not the compiler try substituting Type&?
}
Run Code Online (Sandbox Code Playgroud)

转换运算符如何在C++中工作?(即)编译器何时尝试替换转换运算符后定义的类型?

c++ conversion-operator

38
推荐指数
4
解决办法
4万
查看次数

OOP在大学中滥用吗?

两年前我开始上大学,从那时起我一直听到"先设计你的课程".我有时会问自己,如果我的解决方案首先应该是一堆对象!有人说你没有看到它的好处,因为你的代码库非常小 - 大学项目.项目规模的借口只是不要沮丧.如果解决方案适合项目,我相信它也应该是正确的项目的宏版本.

我并不是说OOP是坏的,我只是觉得它在课堂上被滥用,像我这样的学生日夜被告知OOP是正确的方式.

恕我直言,正确的答案不应该来自教授,我更愿意从现场的真正工程师那里听到.

OOP总是正确的方法吗?

OOP何时是最好的方法?

OOP什么时候不好?

这是一个非常普遍的问题.我不是要求明确的答案,只是来自该领域的一些真实的设计经验.

我不关心表现.我在问设计.我知道这是现实生活中的工程.

================================================== ================================

感谢所有的贡献.我选择了Nosredna的答案,因为她总体上解决了我的问题,并且说服了我对以下内容的错误: 如果解决方案适合项目,我相信它应该是正确的项目的宏版本.

language-agnostic oop

34
推荐指数
7
解决办法
2451
查看次数

为什么有些语言需要拳击和拆箱?

这不是什么是装箱和拆箱的问题,而是为什么像Java和C#这样的语言需要呢?

我非常熟悉C++,STL和Boost.

在C++中,我可以很容易地写出这样的东西,

std::vector<double> dummy;
Run Code Online (Sandbox Code Playgroud)

我有一些Java经验,但我真的很惊讶,因为我必须写这样的东西,

ArrayList<Double> dummy = new ArrayList<Double>();
Run Code Online (Sandbox Code Playgroud)

我的问题,为什么它应该是一个对象,在谈论泛型时,在技术上如此难以包含原始类型?

c++ java generics boxing unboxing

30
推荐指数
2
解决办法
8402
查看次数

OOP的学校是什么?

Smalltalk OOP和Simula OOP之间是否存在哲学差异?

这是一个间接与Java&C#vs C++相关的问题.据我所知,C++基于Simula,但Java和C#或多或少来自Smalltalk系列.

c# c++ java oop

30
推荐指数
2
解决办法
2988
查看次数

C/C++ stdlib命名约定的名称?

我想知道C/C++标准库中使用的命名约定是否有一个名称,或者至少是一个可以查找规则的备忘单.例如

push_back    -- underscore used
setstate     -- but not used here!
string::npos -- when to use abbreviations?
fprintf
...
Run Code Online (Sandbox Code Playgroud)

C/C++标准库中使用的命名约定是否具有特定名称?

c c++ naming-conventions

28
推荐指数
4
解决办法
6790
查看次数

如果他们定义了标准的ABI,C/C++会"丢失"什么?

标题说明了一切.我特别谈论C/C++,因为他们都认为这是"实施问题".我认为,定义标准接口可以轻松构建模块系统,以及许多其他好东西.
如果他们定义了标准的ABI,C/C++会"丢失"什么?

c c++ standards abi

27
推荐指数
6
解决办法
4845
查看次数

Qt是否适用于STL和Boost?

我有兴趣学习Qt.我对C++,STL和Boost相当不错.我非常喜欢STL/Boost风格,每当我能在uni项目中使用C++时我都会使用它们.但是,我总是想念GUI.在我的案例中,Qt似乎是最好的解决方案.Qt确实有很好的容器集合,但我非常熟悉STL/Boost的东西.

在学习Qt并与STL/Boost并排使用时,我应该注意什么?

c++ qt boost stl

26
推荐指数
2
解决办法
4848
查看次数

有没有办法访问STL容器适配器的底层容器?

是否有一个标准来访问的底层容器的方式stack,queue,priority_queue

我发现了一个叫方法:_Get_container()VS2008实施stackqueue,但没有一个priority_queue!我认为它不是标准的.

另外,我知道这是一个愚蠢的问题!我在哪里可以找到标准库的官方文档?


仅仅为了澄清,我并没有试图弄乱底层容器.我试图做的就是:

template <class Container>
std::ostream& printOneValueContainer(std::ostream& outputstream, Container& container)
{
    Container::const_iterator beg = container.begin();

    outputstream << "[";

    while(beg != container.end())
    {
        outputstream << " " << *beg++;
    }

    outputstream << " ]";

    return outputstream;
}

// stack, queue
template
    < class Type
    , template<class Type, class Container = std::deque<Type> > class Adapter
    >
std::ostream& operator<<(std::ostream& outputstream, const Adapter<Type>& adapter) …
Run Code Online (Sandbox Code Playgroud)

c++ standards stl data-structures

24
推荐指数
3
解决办法
8682
查看次数