내가 추상 클래스에 대한 포인터의 배열을 말한다. 나는 다른 자리에 pieces과 Queen의 자리에 King을 할당 : 나는 할당 연산자를 오버로드하지 않은 경우 발생 pieces[0] = new King();
pieces[1] = new Queen();
슬라이스는 무엇입니까? 또는 pieces[0]이 King의 인스턴스이고 pieces[1]이 Qu
C++과 C#의 차이점을 이해하는 데 문제가 있습니다. 먼저 기본 클래스에 가상 함수가 들어있는 예가 있습니다. class Base
{
protected:
int super;
public:
virtual int f() = 0;
};
class Derived : public Base
{
public:
int extra
두 가지 이상의 유형의 객체의 집합을 갖는 비열한 방법이 있습니까? 공통된 기반에서 각 유형을 파생시키는 것이 기쁘다. 컬렉션을 복사, 할당 할 수 있도록 합리적인 의미가 필요합니다. 분명히 기본 클래스의 벡터 나 목록을 사용할 수 없습니다. 개체가 슬라이스되고 복사가 전혀 작동하지 않습니다. 벡터 나 포인터 나 스마트 포인터의 목록을 사용하지만 정상적인
그래서 기본 멤버와 기본 멤버가있는 파생 클래스가있는 기본 클래스에는 연산자 =를 정의하고 이것이 내 질문입니다. 올바른 방법인가요? 더 좋은 방법이 있습니까? 도중에 조각을 저어요? class A
{
private:
int* Arr;
public:
A(){
Arr=new int[10];
for(int i=0;i<10;i++){
는 class Block : Object {/*Filler*/}
및 obj1 및 obj2이 Block 객체로 보장하는 result Compare(const Osp::Base::Object &obj1, const Osp::Base::Object &obj2, int &cmp) const {
cmp = ((const Block)obj1).NumSup
객체 조각화는 파생 클래스의 객체를 기본 클래스의 객체에 할당하거나 복사 할 때 발생하며 프로세스에서 파생 된 부분을 잃어 버립니다. 여기에 더 자세히 설명되어 있습니다 : What is the slicing problem in C++?. (나 자신, 나는 문제, 언어의 값 의미 오히려 자연적인 결과로 표시되지 않습니다,하지만이 질문의 요점이 아닙니다.)
저는 지금 당장 길을 잃었습니다. 벡터 클래스를 만들었습니다. 모든 것이 끝날 때까지 어떻게 작동하고 싶은지 작동합니다. 소멸자가 호출 될 때 오류 메시지가 나타납니다. 디버그 어설 션이 실패했습니다. BLOCK_TYPE_IS_VALID (pHead-> nblockuse). 나는 SO에서 이것과 같은 꽤 많은 질문들을 보았지만, 내가 시도한 것은 효과가 없
다음과 같은 클래스 구조가 있다고 가정합니다. 내 동물 벡터의 요소가 어떤 클래스 유형인지 결정할 수 있기를 원합니다. 따라서 하위 클래스 별 메서드를 수행 할 수 있습니다. 아래의 예는 설명한다 : #include <iostream>
#include <vector>
using namespace std;
class Animal {
publ
-std = C++ 0x를 사용하여 Eclipse/gcc를 사용하여 우분투에서 개발하기. 개체 조각화에 문제가있는 것으로 보입니다. 여기서는 다른 질문에 해당하지 않습니다. 매우 간단한 기본 클래스/자식 클래스 상속 모델이 있습니다. class Parent{
public:
Parent();
virtual ~Parent();
vi
try 블록의 new 표현식이 내 컴퓨터에서 bad_alloc 예외를 발생시킵니다. catch 절은 예외가 아닌 값으로 참조 개체를받습니다. 어떻게 e.what()은 "bad allocation"을 인쇄합니까? 나는 그것이 얇게 썰릴 것이라고 생각했다. #include <iostream>
int main()
{
try
{