小编use*_*343的帖子

C++ typedef和return类型:如何让编译器识别用typedef创建的返回类型?

#include <iostream>
using namespace std;

class A {
    typedef int myInt;
    int k;
public:
    A(int i) : k(i) {}
    myInt getK();
};

myInt A::getK() { return k; }

int main (int argc, char * const argv[]) {
    A a(5);
    cout << a.getK() << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译器将myInt识别为此行中的"int":

myInt A::getK() { return k; }
Run Code Online (Sandbox Code Playgroud)

如何让编译器将myInt识别为int?

c++ typedef

9
推荐指数
1
解决办法
6031
查看次数

simple c ++:如何重载乘法运算符,以便float*myClass和myClass*float工作

class MyClass;

int main()
{
  float a = 5;
  MyClass c1;
  MyClass c2 = a*c1;
  MyClass c3 = c1*a;
}
Run Code Online (Sandbox Code Playgroud)

如何重载乘法运算符以使*c1和c1*a都有效?

c++ operator-overloading

9
推荐指数
1
解决办法
3万
查看次数

c ++部分专业化:如何将此模板<class T1,class T2>专门化为此模板<class T1>?

#include <iostream>
using namespace std;

template <class T1, class T2>
class A {
public:
    void taunt() { cout << "A"; }
};

template <class T1>
class A<T1, T1> {
public:
    void taunt() { cout << "B"; }
};

class B {};

class C {};

int main (int argc, char * const argv[]) {

    A<B> a;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何将我的两个参数模板转换为一个参数模板?

上面的代码会给'A a;'一个编译错误 '错误的模板参数数'.

c++ templates partial-specialization

3
推荐指数
1
解决办法
655
查看次数

C++ 11:有人可以推荐一些书籍和编译器吗?在我的项目中使用c ++ 11是个好主意吗?qt creator 2.5是否支持c ++ 11?

截至2012年3月23日,我想开始使用C++ 11进行编码并在我的所有项目中使用它,因为我看到了许多我非常喜欢的新功能.但是,我没有支持C++ 11中的任何编译器.任何人都可以推荐一些书籍和编译器吗?在我的项目中使用c ++ 11是个好主意吗?qt creator 2.5是否支持c ++ 11?

c++ c++11

3
推荐指数
1
解决办法
1612
查看次数

为什么增量操作如"a [i] = i ++;" 导致未定义的行为?

可能重复:
未定义的行为和序列点

#include <iostream>
using namespace std;

int main()
{
int x[3] = {};
int i=0;
x[i] = i++;
cout << x[0] << " " << x[1] << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

键盘给我这个:第9行:警告:'i'上的操作可能未定义为什么操作未定义?

c++ undefined-behavior sequence-points

3
推荐指数
2
解决办法
2715
查看次数

C++ get和typecasting之间的用法区别是什么?我应该使用哪一个?

#include <iosteam>
using namespace std;

Class A
{
  int k;

public:

  int getK() { return k; }

  operator int() { return k; }

};

int main()
{
  A a;
  cout << a.getK() << " " << int(a) << endl;
}
Run Code Online (Sandbox Code Playgroud)

有什么区别,我应该使用哪一个?我想知道类型转换是否返回引用而getK返回一个副本.

c++ casting

2
推荐指数
1
解决办法
103
查看次数

C++方法和类的正则表达式

可靠地查找C++方法和类的正则表达式是什么?

c++ regex

2
推荐指数
1
解决办法
86
查看次数

C++我可以期望所有编译器都不会破坏被返回的副本吗?

#include <iostream>
using namespace std;

class ClassA {
    int k;
public:
    ClassA(int i) : k(i) 
    {
    }

    ~ClassA()
    {
        cout << "A destroyed" << " k=" << k << endl;
    }

    ClassA copyAndModify() 
    { 
        ClassA a(k*2);
        return a; 
    }

    void taunt() 
    {
        cout << k << endl;
    }
};

int main (int argc, char * const argv[]) {
    ClassA original(1)
    ClassA modified = original.copyAndModify();
    modified.taunt();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我认为当方法返回时,对象'a'(内部方法copyAndModify)被解构,但事实并非如此.这是否意味着在方法中创建的所有正在返回的对象都不会被解构?这适用于所有编译器吗?

c++ destructor

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

为什么sizeof(str.substr(0,3).c_str())给我8?

string str = "abcdefgdcb";

cout << sizeof(str.substr(0,3).c_str());
Run Code Online (Sandbox Code Playgroud)

出于某种原因,上面的字符串给了我8.我假设c_str()返回一个空字符串,而sizeof使用null来确定字符串的大小.

c++ string

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

stringstream:为什么这段代码不返回4?

#include <iostream>
#include <sstream>

using namespace std;

int get_4()
{
  char c = '4';
  stringstream s(ios::in);
  s << c;
  int i;
  s >> i;
  return i;
}

int main()
{
  cout << get_4() << endl;
}
Run Code Online (Sandbox Code Playgroud)

转换对我不起作用.如果我将字符'4'或字符数组{'4','\ 0'}写入stringstream然后将其读出为int i,我就不会回复4.上述代码有什么问题?

c++ stringstream

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

以下循环的时间复杂度是多少?

for (int i=0; i<N; i++)
 for (int j=i; j<N; j++)
  fun1(i,j);
Run Code Online (Sandbox Code Playgroud)

上面是嵌套的for循环.第一个for循环从0变为N,第二个for循环从i变为N.上述代码的时间复杂度是多少?

编辑:fun1是o(1)

c++ big-o time-complexity

-1
推荐指数
1
解决办法
978
查看次数

让方法未实现是合法和良好的做法吗?

#include <iostream>

using namespace std;

class base
{
public:
  virtual void taunt() = 0;
  virtual void hide() = 0;
};

template <int nx, int ny>
class derivedA : public base
{
  void hide();
public:
  void taunt() { cout << "derivedA" << endl; }

  char c[nx][ny];
};

template <int nx, int ny, int nz>
class derivedB : public base
{
  void taunt();
public:

  void hide() { cout << "hide B" << end; }
  char c[nx][ny][nz];
};

int main()
{
  derived * …
Run Code Online (Sandbox Code Playgroud)

c++ virtual

-2
推荐指数
1
解决办法
1112
查看次数