2011-01-10 3 views
0

Я хочу написать класс для некоторого использования. Я хочу вызвать функцию (say generate) этого класса, которая будет генерировать два объекта этого же класса. Эти два объекта вызовут другую функцию класса. Может ли кто-нибудь сказать мне, как это сделать? Я хочу это в C++Функция класса, которая генерирует свои собственные объекты

Class Example{ 
public: 
generate(); 
other_func(); 

} 

int main() 
{ 
Example generate(); 
} 

Теперь эта функция должна генерировать создать два объекта из примера и будем называть other_func();

+1

Я не понимаю. Сделайте какой-нибудь псевдокод или что-то в этом роде. –

ответ

0

Ну, из вашего описания это будет звучать очень просто:

struct Example 
{ 
public: 

    static void generate() { Example e1, e2; e1.other_fun(); e2.other_fun(); } 
    void other_fun() { } 
}; 
0

Вы можете использовать factory methods для генерации объектов указанного класса. Тогда созданные объекты, основанные на обработке бизнес-логики, могут ссылаться на другие методы.

0

лишь функции-члены класса, который можно назвать без существующего члена класса являются статическими функциями-членами. Это более глубокая тема, пожалуйста, см http://www.cprogramming.com/tutorial/statickeyword.html

Так вот я создаю Foo, который делает то, что вы, кажется, просили и возвращает FOOS:

class foo 
{ 
public: 
    static void generate() 
    { 
     foo Temp1; 
     foo Temp2; 
     Temp1.bar(); 
     Temp2.bar(); 
    } 

    void bar() 
    { 

    } 
}; 

редактирование: Я удалил возвращаемый тип, за запрос Редактировать: я полностью удалил возвращаемый тип и правильно на этот раз. Но теперь я не тестировал скомпилированный код.

+0

Мало того, что массив Results не нужен, ничего не добавляет, но вы даже не сделали этого правильно. Ваш массив Results - это автоматический элемент, и вы на нем набрали delete []! Не только это, но вам не удалось удалить содержащиеся в нем элементы, которые должны быть DID. Мне нужно это сделать. –

+0

Я только что увидел, что ему не нужен тип возврата, поэтому я быстро удалил его. Я исправлю это снова ... – Sqeaky

Смежные вопросы