«c++» 태그된 질문

정적 타입, 자유 형식, 다중 패러다임, 컴파일 된 범용 프로그래밍 언어 인 C ++에 대한 질문.

6
함수가 실수로 참조 매개 변수를 무효화합니다. 무엇이 잘못 되었습니까?
오늘 우리는 특정 플랫폼에서만 간헐적으로 발생하는 불쾌한 버그의 원인을 발견했습니다. 정리하면 코드는 다음과 같습니다. class Foo { map<string,string> m; void A(const string& key) { m.erase(key); cout << "Erased: " << key; // oops } void B() { while (!m.empty()) { auto toDelete = m.begin(); A(toDelete->first); } } } 이 단순화 …
54 c++ 

10
'최종'키워드가 유용한 이유는 무엇입니까?
Java는 오랫동안 클래스를 파생 할 수없는 클래스를 선언 할 수있는 힘을 가지고 있으며 C ++에도 클래스가 있습니다. 그러나 SOLID의 열기 / 닫기 원칙에 비추어 볼 때 이것이 왜 유용한가? 나에게 final키워드는 똑같이 들리지만 friend합법적이지만 키워드 를 사용하는 경우 디자인이 잘못되었을 수 있습니다. 파생 할 수없는 클래스가 훌륭한 아키텍처 또는 디자인 …
54 java  c++  solid  final 

8
C ++에서 쓰레기는 어떻게됩니까?
Java에는 자동 중지 기능이있어 가끔 세상을 멈추지 만 힙의 가비지를 처리합니다. 이제 C / C ++ 애플리케이션에는 이러한 STW 동결이 없으며 메모리 사용량도 무한대로 증가하지 않습니다. 이 동작은 어떻게 이루어 집니까? 죽은 물체는 어떻게 관리됩니까?

5
참조 계산 스마트 포인터가 왜 그렇게 인기가 있습니까?
보다시피, 스마트 포인터는 많은 실제 C ++ 프로젝트에서 광범위하게 사용됩니다. 어떤 종류의 스마트 포인터가 RAII 및 소유권 이전을 지원하는 데 분명히 유리하지만, "가비지 콜렉션" 의 방법 으로 공유 포인터 를 기본적 으로 사용하는 경향이 있으므로 프로그래머가 할당에 대해 많이 생각할 필요가 없습니다. . Boehm GC 와 같은 적절한 가비지 수집기를 …

11
C ++에 왜 '정의되지 않은 행동'(UB)이 있고 C #이나 Java와 같은 다른 언어에는 없는가?
이 스택 오버플로 게시물 에는 C / C ++ 언어 사양이 '정의되지 않은 동작'으로 선언 된 상당히 포괄적 인 상황 목록이 나와 있습니다. 그러나 C #이나 Java와 같은 다른 현대 언어에 왜 '정의되지 않은 동작'이라는 개념이 없는지 이해하고 싶습니다. 컴파일러 디자이너가 가능한 모든 시나리오 (C # 및 Java)를 제어 할 …

3
예외 사양이 나쁜 이유는 무엇입니까?
약 10 년 전에 학교로 돌아와서 예외 지정자를 사용하도록 가르치고있었습니다. 내 배경은 그들 중 하나이기 때문에 강제하지 않으면 C ++을 완고하게 피하는 Torvaldish C 프로그래머이기 때문에 나는 C ++로만 끝나고 내가 할 때 예외 지정자를 계속 사용합니다. 그러나 대부분의 C ++ 프로그래머는 예외 지정자를 찌푸리는 것처럼 보입니다. 나는 이와 같은 …

3
C ++ 강력 형식 typedef
컴파일 단계에서 특정 유형의 버그를 잡기 위해 강력하게 유형이 지정된 typedef를 선언하는 방법을 생각했습니다. 종종 여러 유형의 ID로 int를 typedef하거나 위치 또는 속도에 대한 벡터를 typedef하는 경우가 종종 있습니다. typedef int EntityID; typedef int ModelID; typedef Vector3 Position; typedef Vector3 Velocity; 이것은 코드의 의도를 더 명확하게 만들 수 있지만, 코딩의 …
49 c++  c++11  type-safety 

5
모든 <algorithm> 함수가 컨테이너가 아닌 범위 만 사용하는 이유는 무엇입니까?
에 유용한 함수가 많이 &lt;algorithm&gt;있지만, 모두 "시퀀스"-반복자 쌍에서 작동합니다. 예를 들어 컨테이너가 있고 컨테이너를 실행하고 싶다면 다음과 같이 std::accumulate작성해야합니다. std::vector&lt;int&gt; myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); 내가 할 모든 것은 : int sum = std::accumulate(myContainer, 0); 내 눈에는 좀 더 읽기 쉽고 명확합니다. 이제 컨테이너의 일부에서만 작업하려는 …

9
"말하고 묻지 말 것"이 어떻게 좋은 OO로 간주되는지에 대한 설명
이 블로그 게시물 은 여러 업 보트와 함께 Hacker News에 게시되었습니다. C ++에서 나온 대부분의 예제는 내가 배운 것과 반대되는 것 같습니다. 예 # 2와 같은 : 나쁜: def check_for_overheating(system_monitor) if system_monitor.temperature &gt; 100 system_monitor.sound_alarms end end 대 좋은 : system_monitor.check_for_overheating class SystemMonitor def check_for_overheating if temperature &gt; 100 sound_alarms …

9
Linux에서 C ++ 및 C 개발을위한 IDE 비교 : KDevelop, Eclipse, NetBeans, CodeBlocks 및 Anjuta [닫기]
Linux에서 풀 스케일 IDE를 사용한 경험에 주목하고 싶습니다. 나는 개인적으로 주로 vim일하지만 다른 프로그래머는 실제 IDE를보고 싶습니다. 따라서 다음과 같은 맥락에서 다른 IDE에 대한 개인적인 의견과 이들 간의 비교를 듣고 싶습니다. C ++ 및 일부 C 개발 (Java, Python 및 기타 자료 아님) 서버 측 프로그래밍 (GUI 개발 불필요) "크로스 …
49 c++  ide  linux 

2
헤더 전용 라이브러리가 더 효율적입니까?
가정 C ++ 용 헤더 전용 라이브러리의 장점 중 하나는 별도로 컴파일 할 필요가 없다는 것입니다. C 및 C ++ inline에서 함수가 헤더 파일 *에 정의 된 경우에만 의미가 있습니다. 전통적으로 C에서는 .c / .h 레이아웃이 사용되었으며, 여기서 헤더는 번역 단위의 최소 공용 인터페이스를 나타냅니다. 마찬가지로 .cpp / hpp. 질문 …
48 c++  c  libraries 

8
가상 소멸자를 사용하지 않아야 할 때?
가상 소멸자에 대해 여러 번 검색했으며 가상 소멸자의 목적과 가상 소멸자가 필요한 이유를 언급했습니다. 또한 대부분의 경우 소멸자는 가상이어야합니다. 그렇다면 질문은 : 왜 C ++이 모든 소멸자를 기본적으로 가상으로 설정하지 않습니까? 또는 다른 질문에서 : 언제 가상 소멸자를 사용할 필요가 없습니까? 어떤 경우에 가상 소멸자를 사용해서는 안됩니까? 필요하지 않더라도 가상 …


11
면접관이 자신의 질문에 대한 답을 모른다면 어떻게해야합니까? [닫은]
어제 나는 인터뷰에서 끔찍한 경험을했다. 면접관은 순수한 가상 기능에 대해 물었다. 나는 기본 클래스에서 정의를 가질 수도 있고 정의하지 않을 수도 있지만 파생 클래스는 추상적 클래스가되기를 원하지 않는 한 정의를 제공해야합니다. 그러나 인터뷰어는 "순수한 가상이 정의를 가질 수 있을까요? 다시 그는 "순수?" 나는 '예'라고 말했다. 파생 클래스는 특정 동작을 원하는 …
48 c++  interview 

3
C 및 C ++를 사용한 Android 개발
저는 C, C ++ 개발자입니다. 모바일 개발에 관심이 있습니다. 나는 C와 C ++를 사용하여 안드로이드 애플리케이션을 개발할 수있는 방법을 알고 싶어요, 나는 한 읽어 들이는 C, C ++ 개발자를위한 키트를 제공하고 있지만, 자바 키트의 모든 기능을 가지고 있지 않습니다. C / C ++ 개발 키트를 사용해야합니까? 아니면 향후 모든 기능을 …
47 c++  c  android 

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