小编doc*_*doc的帖子

你在编程时使用"笔和纸"吗?

有许多CASE工具,许多用于图表,绘图,文档的软件.但他们可以取代旧的好纸吗?

case

8
推荐指数
4
解决办法
3890
查看次数

哪个学校的报告功能失败更好

通常你有一个函数,对于给定的参数,它不能生成有效的结果,或者它不能执行某些任务.除了在C/C++世界中不常用的例外之外,基本上有两个学校报告无效结果.

第一种方法将有效返回与不属于函数的codomain的值(通常为-1)混合并指示错误

int foo(int arg) {
    if (everything fine)
        return some_value;
    return -1; //on failure
}
Run Code Online (Sandbox Code Playgroud)

第二种方法是返回函数状态并将结果传递给引用

bool foo(int arg, int & result) {
     if (everything fine) {
         result = some_value;
         return true;
     }
     return false;  //on failure
}
Run Code Online (Sandbox Code Playgroud)

您更喜欢哪种方式?为什么?第二种方法中的附加参数是否会带来显着的性能开销?

c c++ return return-value

8
推荐指数
3
解决办法
1014
查看次数

PHP核心如何处理客户端连接?

据我所知,对于连接到服务器的每个客户端,PHP都会为它生成一个新线程.但是我想知道它是否真实,如果它是真的,这个线程能活多久?该线程是否正确维护所有静态变量?(像数据库连接)

当这个线程被销毁时,它是否会调用所有析构函数?

php

8
推荐指数
2
解决办法
1362
查看次数

提供非const引用getter是否有意义

有时我需要暴露一些班级成员.例如,在以下示例中class Mechanic可能需要直接访问Engine组件.我已多次读过所有字段都应该由mutator(accessor)方法访问,原因有几个.但是在提供非const引用getter时是否有任何优势:

class Car
{
    public:
        Engine & engine()
        {
           return m_engine;
        }

        //as a consequence you will also need to provide const version
        const Engine & engine() const
        {
           return m_engine;
        }

    private:
       Engine m_engine;
}
Run Code Online (Sandbox Code Playgroud)

简单地将引擎组件公开:

class Car
{
    public:
        Engine engine;
}
Run Code Online (Sandbox Code Playgroud)

您也可以替换public使用protected,如果你不喜欢这样的例子.在现实生活中,当涉及到System.in或者,你在Java中有类似的东西System.out.看起来,要完全符合某些人的说法,你需要执行类似的调用System.getInstance().getOut().println("hello world").在这种情况下,除了很多官僚代码外,我没有看到任何好处.

c++ oop getter accessor mutators

7
推荐指数
1
解决办法
1484
查看次数

如何处理const对象中非const引用成员的初始化?

假设你有一堂课

    class C 
    {
      int * i;

      public:

         C(int * v):i(v) {};

         void method() const;  //this method does not change i
         void method();        //this method changes i
    }
Run Code Online (Sandbox Code Playgroud)

现在您可能想要定义此类的const实例

    const int * k = whatever;
    const C c1(k); //this will fail
Run Code Online (Sandbox Code Playgroud)

但是这会因为非const int C的构造函数C(int*v)而失败

所以你定义了一个const int构造函数

    C(const int * v):i(v) {}; //this will fail also
Run Code Online (Sandbox Code Playgroud)

但是这也会失败,因为C的成员"int*i"是非const的.

在这种情况下该怎么办?使用可变吗?铸件?准备const版本的课程?

编辑:经过与Pavel的讨论(下图),我对此问题进行了一些调查.对我来说,C++的作用并不正确.指针目标应该是严格类型,这意味着您不能执行以下操作:

int i;
const int * ptr;
ptr = & i;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,语言语法将const承诺不改变指针的目标.另外int * const ptr是承诺不改变指针值本身.因此,您有两个可以应用const的地方.那么你可能希望你的类为指针建模(为什么不).在这里,事情正在崩溃.C++语法提供了const方法,它们能够保证不会自己更改字段的值,但是没有语法指出你的方法不会改变你的类指针的目标.

解决方法是定义两个类const_C,C …

c++ constructor const-correctness

6
推荐指数
2
解决办法
1965
查看次数

为什么无法从派生类对象访问父类的赋值运算符

例:

class C
{
  public:
    void operator =(int i) {}
};

class SubC : public C
{
};
Run Code Online (Sandbox Code Playgroud)

以下是编译错误:

SubC subC;
subC = 0;
Run Code Online (Sandbox Code Playgroud)

"'subC = 0'中的'operator ='不匹配"

一些消息来源声明这是因为赋值运算符不是继承的.但是,这不仅仅是因为默认构造的复制分配SubC掩盖了它们吗?

c++ inheritance assignment-operator

6
推荐指数
1
解决办法
1478
查看次数

返回原子,我应该在getter中使用临时线程安全吗?

是否有必要在这里使用临时线程安全?

 int getVal() {
       this->_mutex.lock();
       int result = this->_val;
       this->_mutex.unlock();
       return result;
 }
Run Code Online (Sandbox Code Playgroud)

我会给你拆卸简单的RAII测试功能

int test()
{
    RAIITest raii; //let's say it's a scoped lock
    return 3;
}


 {
     0x004013ce <_Z4testv>:    push  %ebp
     0x004013cf <_Z4testv+1>:  mov   %esp,%ebp
     0x004013d1 <_Z4testv+3>:  sub   $0x28,%esp
     return 3;
     0x004013d4 <_Z4testv+6>:  lea   -0x18(%ebp),%eax
     0x004013d7 <_Z4testv+9>:  mov   %eax,(%esp)
     0x004013da <_Z4testv+12>: call  0x4167a0 <_ZN8RAIITestD1Ev>  //here destructor is called
     0x004013df <_Z4testv+17>: mov   $0x3,%eax //here result is pushed onto the stack
 }
 0x004013e4 <_Z4testv+22>: leave 
 0x004013e5 <_Z4testv+23>: ret   
Run Code Online (Sandbox Code Playgroud)

编译器是gcc/g ++ …

c++ getter multithreading atomic thread-safety

5
推荐指数
1
解决办法
1674
查看次数

引用未初始化的对象iniside构造函数

可以将未初始化的对象传递给父类,如下例所示

class C
{
    public:
        C(int i): 
            m_i(i)
        {};

        int m_i;
}

class T
{
    public:
        T(C & c):
            m_c(c)
        {
        };

        C & m_c;
};


class ST : public T
{
    public:
        ST():
            T(m_ci),
            m_ci(999)
        {
        };

        C m_ci;
};
Run Code Online (Sandbox Code Playgroud)

class T构造函数中,c是对未初始化对象的引用.如果在施工期间class T使用c物体,这可能会导致错误.但由于它不是,这编译并正常工作.我的问题是 - 它是否会制定某种范式或良好的设计指令?如果是这样,有什么选择,因为我发现在子类中分配父对象所需的对象很有用.

在旁注中,我想知道为什么不可能改变初始化顺序,以便在初始化某些成员之后调用基类构造函数.

c++ constructor initialization reference

5
推荐指数
1
解决办法
1208
查看次数

c ++中的'导出函数'是什么意思?

最近我开始合作c++.我听说exported functions但不确定它意味着什么.

所以我的问题是:

  1. 什么是exported function
  2. 有什么区别normal functionexported function?如果是的话,它是什么?
  3. 它与它有dll什么关系?

c++ dll dllexport

5
推荐指数
1
解决办法
2557
查看次数

Laravel Elixir没有结合脚本

我只是干净地安装了laravel.Elixir没有合并我的脚本.我对发生的事情毫无头绪.我看到脚本任务被触发但在public/js目录中没有输出文件.

这是我的gulpfile.js:

elixir(function (mix) {
    mix.sass('style.scss')
        .scripts([
            'vendor/jquery.js',
            'vendor/foundation.min.js',
            'script.js'
        ], 'resources/assets/js', 'public/js/app.min.js')
        .scripts([
            'vendor/modernizr.js'
        ], 'resources/assets/js', 'public/js/modernizr.js');
});
Run Code Online (Sandbox Code Playgroud)

它适当地编译sass.

这是目录结构:https://www.uploady.com/#!/ download = 21Y0RI_aYe/V7eKiQHIw2gvyXVD

php laravel laravel-5 laravel-elixir

5
推荐指数
1
解决办法
3504
查看次数