«c++» 태그된 질문

C ++는 범용 프로그래밍 언어입니다. 원래 C에 대한 확장으로 설계되었으며 유사한 구문을 갖지만 이제는 완전히 다른 언어입니다. C ++ 컴파일러로 컴파일 된 코드에 대한 질문에이 태그를 사용하십시오. 특정 표준 개정 [C ++ 11], [C ++ 14], [C ++ 17] 또는 [C ++ 20] 등과 관련된 질문에 버전 별 태그를 사용하십시오.

5
C ++에서 const 객체를 기본 생성하기 위해 사용자 제공 기본 생성자가 필요한 이유는 무엇입니까?
C ++ 표준 (섹션 8.5)은 다음과 같이 말합니다. 프로그램이 const 한정 형식 T의 개체에 대한 기본 초기화를 호출하는 경우 T는 사용자가 제공 한 기본 생성자가있는 클래스 형식이어야합니다. 왜? 이 경우 사용자 제공 생성자가 필요한 이유를 생각할 수 없습니다. struct B{ B():x(42){} int doSomeStuff() const{return x;} int x; }; struct A{ …
99 c++ 

11
LNK2019 오류를 해결하는 방법 : 해결되지 않은 외부 기호-기능?
이 오류가 발생하지만 해결 방법을 모르겠습니다. 저는 Visual Studio 2013을 사용하고 있습니다. 솔루션 이름을 MyProjectTest로 지정했습니다. 이것은 테스트 솔루션의 구조입니다. - function.h #ifndef MY_FUNCTION_H #define MY_FUNCTION_H int multiple(int x, int y); #endif -function.cpp #include "function.h" int multiple(int x, int y){ return x*y; } - MAIN.CPP #include <iostream> #include <cstdlib> #include …


4
C ++ 14에 이미 제네릭 람다가있는 경우 C ++ 20에 도입 된 템플릿 람다의 필요성은 무엇입니까?
C ++ 14 다음과 같이 작성할 수있는 일반 람다를 도입했습니다. auto func = [](auto a, auto b){ return a + b; }; auto Foo = func(2, 5); auto Bar = func("hello", "world"); 이 일반적인 람다 func는 템플릿 함수 func가 작동 하는 것처럼 작동 한다는 것은 매우 분명합니다 . C ++위원회가 …


5
[]를 사용할 때 C ++ 맵 유형 인수에 빈 생성자가 필요한 이유는 무엇입니까?
참조 C ++ 표준 목록과 기본 - 작도 유형 중요한 문제는 아니지만 특정 인수없이 클래스가 인스턴스화되는 것을 원하지 않기 때문에 성가신 일입니다. #include <map> struct MyClass { MyClass(int t); }; int main() { std::map<int, MyClass> myMap; myMap[14] = MyClass(42); } 이것은 다음과 같은 g ++ 오류를 제공합니다. /usr/include/c++/4.3/bits/stl_map.h:419 : 오류 …
99 c++  dictionary 


14
C / C ++에서 log base (2)를 작성하는 방법
log (base 2) 함수를 작성하는 방법이 있습니까? C 언어에는 2 개의 내장 기능이 있습니다 .-- >> 1. log베이스 e. 2. log10베이스 10; 하지만 2 진법의 로그 함수가 필요합니다.
99 c++  c 

4
std :: function은 어떻게 구현됩니까?
내가 찾은 소스에 따르면 람다 식은 기본적으로 컴파일러에서 오버로드 된 함수 호출 연산자와 참조 된 변수를 멤버로 사용하는 클래스를 생성하여 구현됩니다. 이는 람다 식의 크기가 다양하고 참조 변수가 충분히 주어지면 크기가 임의로 클 수 있음을 나타 냅니다. An std::function은 고정 된 크기를 가져야 하지만 같은 종류의 람다를 포함하여 모든 종류의 …
99 c++  c++11  lambda 

16
여러 'for'루프를 작성하는 깔끔한 방법
여러 차원이있는 배열의 경우 일반적으로 for각 차원에 대해 루프 를 작성해야 합니다. 예를 들면 : vector< vector< vector<int> > > A; for (int k=0; k<A.size(); k++) { for (int i=0; i<A[k].size(); i++) { for (int j=0; j<A[k][i].size(); j++) { do_something_on_A(A[k][i][j]); } } } double B[10][8][5]; for (int k=0; k<10; k++) …
98 c++  for-loop 

4
cout << a ++ << a;에 대한 정답은 무엇입니까?
최근 인터뷰에서 다음과 같은 객관적인 질문이있었습니다. int a = 0; cout &lt;&lt; a++ &lt;&lt; a; 답변: ㅏ. 10 b. 01 c. 정의되지 않은 동작 나는 선택 b에 대답했다. 즉 출력은 "01"이 될 것이다. 그러나 놀랍게도 면접관은 정답이 옵션 c : 정의되지 않음이라고 들었습니다. 이제 C ++의 시퀀스 포인트 개념을 알고 …
98 c++  c++-faq 

14
std :: exception에서 상속해야합니까?
적어도 하나의 신뢰할 수있는 소스 (내가 취한 C ++ 클래스)에서 C ++의 애플리케이션 별 예외 클래스가 std::exception. 이 접근 방식의 이점에 대해 잘 모르겠습니다. C #에서 상속하는 이유 ApplicationException는 분명합니다. 유용한 메서드, 속성 및 생성자 몇 가지를 얻고 필요한 항목을 추가하거나 재정의하기 만하면됩니다. 로 std::exception그것은 당신이 얻을 모두가 것 같다 …

4
복사 한 다음 이동하는 이유는 무엇입니까?
누군가가 객체를 복사하여 클래스의 데이터 멤버로 옮기기로 결정한 코드를 보았습니다. 이로 인해 이동의 요점이 복사를 피하는 것이라고 생각했기 때문에 혼란 스러웠습니다. 다음은 그 예입니다. struct S { S(std::string str) : data(std::move(str)) {} }; 내 질문은 다음과 같습니다. 왜 우리는 rvalue 참조를받지 str않습니까? 사본은 특히 비싸지 std::string않습니까? 저자가 사본을 만들고 이동하기로 …

6
(어떻게) 열거 형의 항목을 계산할 수 있습니까?
이 질문이 떠 올랐습니다. enum Folders {FA, FB, FC}; 각 폴더에 대한 컨테이너 배열을 만들고 싶었습니다. ContainerClass*m_containers[3]; .... m_containers[FA] = ...; // etc. (사용은 사용하기에 훨씬 더 우아 매핑 : std::map&lt;Folders, ContainerClass*&gt; m_containers;) 그러나 원래 질문으로 돌아가려면 배열 크기를 하드 코딩하지 않으려면 폴더에 몇 개의 항목이 있는지 알아내는 방법이 있습니까? …
98 c++  count  enumeration 

7
C ++ 경고 : double을 0으로 나누기
사례 1 : #include &lt;iostream&gt; int main() { double d = 15.50; std::cout&lt;&lt;(d/0.0)&lt;&lt;std::endl; } 경고없이 컴파일되고 인쇄 inf됩니다. 좋아요, C ++는 0으로 나누기를 처리 할 수 ​​있습니다 ( 라이브 참조 ). 그러나, 사례 2 : #include &lt;iostream&gt; int main() { double d = 15.50; std::cout&lt;&lt;(d/0)&lt;&lt;std::endl; } 컴파일러는 다음 경고를 표시합니다 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.