저는 작업이 많아서 구조체를 생성해야하며 그 구조체를 사용하여 객체를 만들고 삭제해야합니다.구조체 및 객체 생성
여기에 함수가 들어있는 구조체가 만들어졌습니다.
struct Operation
{
char op;
double (*apply)(Operation*, double,double); // takes two doubles
}
나는 그것을 완벽하게 이해합니다. 이제 개체를 만들어야합니다. ;
(*ret).op = op;
그리고 삭제 개체 : - ">"오페라의 말을 동일
Operation* Make(char op)
{
Operation* ret = new Operation;
ret -> op = op;
ret -> apply = doit;//doit is a norther function
return ret;
}
는 내가 아는
void BrakeObject(Operation& o)
{
delete o;
o = NULL;
}
기능 (적용)은 기본 기능과 동일하게 보입니까? 배열입니까?
Operation* ret = new Operation;
개체는 단지 함수입니까?
당신은 돈
잘못 구문은,이 확인 될 것입니다) 확인
D있을 삭제합니다 잘못된 구문
입니다 "내부에 함수가있는 구조체"가 있으면 _pointer_와 같은 구조체가 있습니다. 한 멤버, 두 개가 아닌 세 개의 인수를 취하는 함수를 가리키는 멤버. 마지막 함수는 전혀 컴파일 할 수 없습니다 : break는 키워드이며 참조를 삭제할 수 없습니다. 당신은'->'에 대한 설명이 분명하지 않고 ... 결국 나는 당신의 질문을 정말로 이해하지 못합니다. – Mat
당신이 여기에서 묻고있는 것을 말하기는 어렵지만, 정말로 당신이'double (* apply) (double, double)을 원한다고 생각합니다; // 두 번 두 번 걸립니다. '쓴 것은 두 개의 double을 취하지 않으며 두 개의 double과 Operation 포인터가 필요합니다. – jahhaj
-> 연산자는 포인터를 존중합니다. – Monster