41

Re: Цікаві задачі

А я вже подумав про опцію для лінкера, яка встановлює місцем запуску іншу процедуру.

Бодай вас Бог любив, а мене – молодиці!

42

Re: Цікаві задачі

Очі.завидющі написав:

А я вже подумав про опцію для лінкера, яка встановлює місцем запуску іншу процедуру.

Хочу це побачити. :3

I belong to the Dead Generation.

43

Re: Цікаві задачі

Сподобалась тема!

У мене також є цікава задача:


1. є деякий клас, в якому обов"язково є 1 віртуальна функція, яка не працює з данними класу але

щось виводить на екран.

об"явлення класу є. Як викликати цю функцію не використовуючи її ім"я?

44

Re: Цікаві задачі

Тарас написав:

Сподобалась тема!

У мене також є цікава задача:


1. є деякий клас, в якому обов"язково є 1 віртуальна функція, яка не працює з данними класу але

щось виводить на екран.

об"явлення класу є. Як викликати цю функцію не використовуючи її ім"я?

Покажчиком на функцію.

Прихований текст
Змахує на лабу, судячи з одинички на початку... :)
I belong to the Dead Generation.
Подякували: Chemist-i, Тарас2

45 Востаннє редагувалося Bartash (21.06.2013 16:41:06)

Re: Цікаві задачі

Так, це була лаба  :)
Ось моя реалізація -

#include <iostream.h>

class A {
     public:
     virtual void func() { cout << " Welcom to A"<<endl; }
};

typedef void (*func_type)();

int main()
{
    A a = new;
  
 
    func_type* vptb = *reinterpret_cast<func_type**>( &a );       
    
    vptb[0](); 
 
    system ("PAUSE");     
    return 0;
}

Bartash: код варто брати у теги code.

46

Re: Цікаві задачі

Я от не можу докумекати як реалізувати наступне:

Є клас в якому об"явлено метод і елемент типу int.
Через вказівник на об"єкт класу викликається метод, який повертає значення елементу int. Як не змінюючи реалізацію класу забезпечити, щоб при виклику метода через вказівник викликався не він, а моя глобальна функція, яка змінить елемент питу int помноживши його на 10 ?

Важливо - спадкування використовувати не можна; відповідно не можна створювати нових класів.

47

Re: Цікаві задачі

Прихований текст
Хай допоможе тобі operator ->, падаване юний!
Подякували: Тарас1

48

Re: Цікаві задачі

Тобто ви маєте на увазі, що потрібно перевантажити operator-> ?
А хіба для перевантаження цього operatorа не доведеться змінювати реалізацію класу?
І на скільки я знаю operator-> обов"язково має бути методом, а не глобальною функцією ??

49 Востаннє редагувалося koala (19.06.2013 20:06:39)

Re: Цікаві задачі

Дійсно, не подумав. Хм...
"Викликається через вказівник" - що це означає? В C++ можна придумати кілька варіантів. Можна використовувати будь-який?

50 Востаннє редагувалося koala (19.06.2013 20:12:34)

Re: Цікаві задачі

Уточнення: незмінній фрагмент коду має бути таким:

class OneMethod
{
  public:
    int x;
    int getX(){return x;}
};

...
OneMethod om, *pom=&om;
om.x=5;
cout << pom->getX();//виводить 50

чи можна гратися усіма умовами ("виклик методу через вказівник" - не pom->getX(), а (*pom).getX(); int може бути статичним - не сказано ж іншого; і т.д.)?

51 Востаннє редагувалося koala (19.06.2013 20:15:57)

Re: Цікаві задачі

А якщо так...

class fakeint
{
  //робимо все, що нам заманеться
};
#define int fakeint
//а тепер наш код...

52

Re: Цікаві задачі

Можна "гратися" усіма умовами.
Головне, щоб у класі був тільки один метод, наприклад F() і елемент типу int.
А також дано, що у мейні вже є вказівник на об"єкт через який викликається метод F()
наприклад :
A *p;
p->F();

І як не змінюючи ці умови зробити так, щоб при виклику p->F(); викликався не метод F(), а нова моя функція, яка не є методом і, яка змінить елемент класу типу int.

От я і не можу придумати як зробити цю заміну функцій :(

53 Востаннє редагувалося koala (25.09.2013 10:45:09)

Re: Цікаві задачі

gavno_vopros написав:

Привіт, допоможіть написати програму для знаходження НСД(найбільшого спільного дільника) 2х натуральних чисел. С++

Привіт, терміново прочитайте правила, особливо пп. 3.3-3.6.

Подякували: Replace1

54

Re: Цікаві задачі

Всім привіт! Ось на, на мою думку, цікава задача:
Дано символьний рядок s, в ньому не менше двох компонентів. Виявити чи є дві перших компоненти цифрами.

55 Востаннє редагувалося muroclav (17.10.2013 23:41:12)

Re: Цікаві задачі

А як на мене стандартна лаба)

Подякували: cuhedg, Bartash2

56 Востаннє редагувалося cuhedg (17.10.2013 23:24:27)

Re: Цікаві задачі

Що може бути цікавішим, ніж отримання елементу з масиву та умовний оператор? Звісно, нічого :)

Подякували: koala1

57

Re: Цікаві задачі

Пане dmkdok, я б вам відповів, але вже зробив це місяць тому в повідомленні якраз перед вашим...
cuhedg: а без умовного оператору зможете?

58

Re: Цікаві задачі

koala написав:

Пане dmkdok, я б вам відповів, але вже зробив це місяць тому в повідомленні якраз перед вашим...
cuhedg: а без умовного оператору зможете?

Я зможу =)

Прихований текст
x

59

Re: Цікаві задачі

Chemist-i: а без функцій? Тут має вистачити однієї математики.

60

Re: Цікаві задачі

koala написав:

Chemist-i: а без функцій? Тут має вистачити однієї математики.

Звичайно:

Прихований текст

    unsigned char s[] = "22Mama mila ramu";
    int numberOfSymb = 0;
    int x = ((((s[numberOfSymb]) - 0x30 & 0xF0) - 0x0A)>>0x08)+0x01;
        
    char answer [2][7] = {"number", "text"};
    printf("%s \n", answer[x]);

x