singlepost

Функции-члены внутри структуры. Не могу разобраться. << На главную или назад  

Всем доброго времени суток!
Выпала мне задачка:

*********
Запрограммировать и проверить следующую структуру:

Структура "String" (строка). Функции-члены: String(), GetLength(),
Reverse().

*********

Собственно вот. Изобразил такой вот код:

-----------------------------------------------------------------

#include "stdafx.h"
#include <iostream.h>
using namespace std;
#include <string.h>

struct String{
String(char str)
{
}

int GetLenght (char str[])
{
<выдает длину слова>
}

char Inverse (char str[50])
{
<отражает строчку>
}
};

void main (void)
{
char word[50] = "denis";
int lenght = 0;
}

-----------------------------------------------------------------

Ну и вот... Возник вопрос: правильно ли я написал и как этим пользоваться? Ну и конечно же:

1) Что за член-функция String (первая)? Для чего она нужна и что в ней прописать?

2) Как мне ими воспользоваться? При объявлении String Structure; - жалуется на отсутствие конструктора. Я не знаю как его прописать.

Собственно, вот.

Пару ссылок нагуглил, но функциям в структуре не нашел ничего.

Так что, ЗАРАНЕЕ СПАСИБО.

7 ответов в теме “Функции-члены внутри структуры. Не могу разобраться.”

  1. 1
    Евгений Тихонов ответил:

    Член без функций это плохо, ога.

  2. 2
    Евгений Безымянников ответил:

    а вы чего хотите получить?

  3. 3
    Денис Доманский ответил:

    Насколько я понимаю, нужно, чтобы из main можно было вызывать функции-члены.

    в моём представлении это

    char word[] = "denis";
    int i;

    i = Struct.GetLenght(word);

    как то вот так…

  4. 4
    Евгений Гаврин ответил:

    // Максимум так
    struct foo {
    foo(int ia, int ib) : a(ia), b(ib) {}

    int a;
    int b;
    };

    > Пару ссылок нагуглил, но функциям в структуре не нашел ничего.
    Потому что в С++ это называется класс.

    class CString{
    //Ваша строка.
    private char *str;
    // Конструктор по умолчанию
    CString()
    {
    }
    // Деструктор
    ~CString()
    {
    //тут чистим память
    }
    CString(char &strInput)
    {
    // тут выделяем память под строку и заполняем локальный str
    }

    int GetLenght ()
    {
    //<выдает длину слова>
    }

    char Inverse ()
    {
    //<отражает строчку>
    }
    };

    void main (void)
    {
    // Тут мы пользуемся классом

    }

  5. 5
    Денис Доманский ответил:

    Спасибо, видимо, так и придется.

    Но если кто-нибудь что-нибудь знает о функциях внутри структуры – Велкам!

  6. 6
    Евгений Гаврин ответил:

    Тоже самое будет, но так делать не надо.

  7. 7
    Леонид Максимов ответил:

    насколько я понимаю, это ограничение административного характера, вызванное требованиями к стилю – на практике struct и class взаимозаменяемы: в Си++ struct отличается от class тем, что struct имеет по умолчанию модификатор public, а class – private. все остальное одинаково.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.