Обсуждение Программирование на C/C++

K

KeyMan

Народ, памагите!!..У меня вот такая проблема: есть класс, есть метод класса который должен вызывать другие методы этого же класса, но при компиляции выдаётся сообщение "member function redeclaration not allowed".....тоесть он её не видит??!!!.......как же мне сделать то таг, чтоб фсётаки вызывать метод другим методом??!!!!:idontno:
Могу предположить самое тупое: может прототип забыл описать?
 

Kowalski

Ословед
51002INFA.jpg

если кто шарит - помогите плиз в ПС...репы не пожалею
на С надо заделать это дело

люди срочно помощь нужна...:cry2:
 
Ну дык вод......... *.h файл.....
Код:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//////////////////////////////////////
const int MAX=32;
//////////////////////////////////////
class Personage
{
    private:
        int str,agl,HP;
        char name[MAX];
    public:
        Personage(): str(10),agl(10), HP(50)
        {/**/}
        ~Personage()
        {/**/}
        void ShowData()
        {
            cout << "\nВаше имя " << name <<"\n";
            cout <<"\nПараметры персонажа: "
                 <<"\nСила "<<str
                 <<"\nЛовкость "<<agl
                 <<"\nЗдоровье "<<HP;
        }
        void GetData()
        {
            cout<<"\nВведите имя: ";
            cin >> name;
        }
        void Save();
        void Load();
        void Command();
        void Help();

};
/////////////////////////////////////////////

/////////////////////////////////////////////
void Personage::Save()
{
    ofstream outfile;
    
    outfile.open("Save.txt",ios::binary);
        outfile.write((char*)this,sizeof(*this));
}
/////////////////////////////////////////////////
void Personage::Load()
{
    ifstream infile;

    infile.open("Save.txt",ios::binary);
    infile.read((char*)this,sizeof(*this));
}
/////////////////////////////////////////////////
void Personage::Command()
{
    char command;
    cout <<"\nВведите команду: ";
    cin >> command;

    switch(command)
    {
    
    case 'c': 
        void Personage::GetData(); // вод эти команды не робят
        break;

    case 'sh': 
        void Personage::ShowData(); // вод эти команды не робят
        break;

    case 'l': 
        void Personage::Load(); // вод эти команды не робят
        break;

    case 's': 
        void Personage::Save(); // вод эти команды не робят
        break;

    }
}
:idontno:
 

v0rbis

Ословед
void Personage::Save() и тд и тп -- зачем?

во первых void. во вторых ты внутри класса можешь обращаться сразу к Save()
 
void Personage::Save() и тд и тп -- зачем?

во первых void. во вторых ты внутри класса можешь обращаться сразу к Save()
Спс.........вродь заработало.........=))
З.Ы.: Никто не знат как заставить в операторе case в switch принимать как значение перемнной строку, а не один символ??!!
string как переменную он тож не хотит принимать??!!
 
Ш

Штурман

З.Ы.: Никто не знат как заставить в операторе case в switch принимать как значение перемнной строку, а не один символ??!!
string как переменную он тож не хотит принимать??!!

1) Привести строку к целочисленному константному выражению.
2) Использовать вложенные if.
3) Использовать другой язык, например C Sharp :)
 

iXside

Ословед
Выложите пожалуйста хороший 2D движок и мануал на русском к нему(VC++ 6.0). Ну и желательно статью с примером 2d игры какой-нибудь :)
 
памагите прогу написать, открываюшую определённый тип текстовых файлов.
есть исходник.
есть даже сама прога, правда под линуксом =\
 
памагите прогу написать, открываюшую определённый тип текстовых файлов.
есть исходник.
есть даже сама прога, правда под линуксом =\
Код:
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
 
int main(void)
{
   int handle;
   char msg[] = "Hello world";
   if ((handle = open("TEST.$$$", O_CREAT | O_TEXT)) == -1)
   {
      perror("Error:");
      return 1;
   }
   write(handle, msg, strlen(msg));
   close(handle);
   return 0;
}
 
#include <stdio.h>
int main(void)
{
   FILE *in, *out;
   if ((in = fopen("TESTFILE.DAT", "rt"))
       == NULL)
   {
      fprintf(stderr, "Cannot open input file.\n");
      return 1;
   }
   if ((out = fopen("TESTFILE.BAK", "wt"))
       == NULL)
   {
      fprintf(stderr, "Cannot open output file.\n");
      return 1;
   }
   while (!feof(in))
      fputc(fgetc(in), out);
   fclose(in);
   fclose(out);
   return 0;
}
 

Serge

Ословед
Наверняка есть лучше , а главное проще, способ копирования постоянного обновляемого экрана сервера в цикле для последующей постоянной передачи картинки??!
потестируй это
Код:
//--------------------------------------------------------------------
// CaptureScreen.cs © 2002 by Charles Petzold, www.charlespetzold.com
//--------------------------------------------------------------------
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;

class CaptureScreen: Form
{
          // Define external Win32 function.

     [DllImport("gdi32.dll")]
     public static extern bool BitBlt(IntPtr hdcDst, int xDst, int yDst, int cx, int cy,
                                      IntPtr hdcSrc, int xSrc, int ySrc, uint ulRop);
          // Sole field

     Bitmap bm;

     public static void Main()
     {
          Application.Run(new CaptureScreen());
     }
     public CaptureScreen()
     {
          Text = "CaptureScreen Demo (click client area)";
          ResizeRedraw = true;
     }
     protected override void OnClick(EventArgs ea)
     {
               // Get a Graphics object associated with the screen.

          Graphics grfxScreen = Graphics.FromHwnd(IntPtr.Zero);

               // Create a bitmap the size of the screen.
          
          bm = new Bitmap((int) grfxScreen.VisibleClipBounds.Width, 
                          (int) grfxScreen.VisibleClipBounds.Height, grfxScreen);

               // Create a Graphics object associated with the bitmap.

          Graphics grfxBitmap = Graphics.FromImage(bm);

               // Get hdc's associated with the Graphics objects.

          IntPtr hdcScreen = grfxScreen.GetHdc();
          IntPtr hdcBitmap = grfxBitmap.GetHdc();

               // Do the bitblt from the screen to the bitmap.

          BitBlt(hdcBitmap, 0, 0, bm.Width, bm.Height,
                 hdcScreen, 0, 0, 0x00CC0020);

               // Release the device contexts.

          grfxBitmap.ReleaseHdc(hdcBitmap);
          grfxScreen.ReleaseHdc(hdcScreen);

               // Manually dispose of the Graphics objects.

          grfxBitmap.Dispose();
          grfxScreen.Dispose();

          Invalidate();
     }
     protected override void OnPaint(PaintEventArgs pea)
     {
          Graphics grfx = pea.Graphics;

               // If the bitmap exists, display it shrunk to size of client.

          if (bm != null)
               grfx.DrawImage(bm, ClientRectangle);
     }
}
http://www.charlespetzold.com/pwcs/ReadingPixelsFromTheScreen.html
 

    Бретон

    очки: 4
    спс гигантское!!!!!!!! ни знаб что бы я делал без вашей помощи!))

Бретон

Ословед
О господи она работает!!!!! Спс те огромнейшее!!!!
сам ниче толком не мог ни винете ни в MSDN отыскать!!!)):wow::wow::wow::wow::wow::wow::wow:
остается ток разобраться в коде и понять как вставить в мою программу
 

Shreder

Ословед
Народ. Есть у кого-нибудь функция замены подстроки в строке на другую строку.? или алгоритм.. неполучается у мну и все.
 

CrazyBolt

Ословед
Народ. Есть у кого-нибудь функция замены подстроки в строке на другую строку.? или алгоритм.. неполучается у мну и все.
учим STL
Код:
 #include <string>
using namespace std;
void func(string& str, const string& str1, const string& str2)
{
  string::size_type index = str.find(str1);
  str.erase(index,str1.size());
  str.insert(index,str2);
}
 

    Technolog

    очки: 2
    Спасибо за Визио
Народ, если у кого есть, дайте плиз пример построения trie дерева, а точнее функцию добавления в trie дерево и функцию удаления из trie дерева.
 
Люди уже ещё раз прошу помощи у вас. По-прежнему нужно обработать исходник и скомпилировать. Делов на 5 минут, просто я совсем не шарю в с++ помогите кто-нить.
 

Darken Raven

Ословед
Задача сотоит в следующем: рабочее окно программы нужно крыть и оставить юзеру только треевую иконку. С ее помощью он может получать некоторую информацию при наведениии и всплывающие (от иконки) сообщения по внутреннему алгоритму софтины. Поделитесь кодом или ссылкой на таковой :)
 
народ спасите!!!

написать на Си+ задачу:
Составить программу, которая читает текстовый файл и выполняет его преобразование:
В каждой строке удалить лишние пробелы между словами и разместить их по левому краю,сохраняя первоначальную длину строки.
Примечания:
1. Имя файла, который подлежит обработке, должно быть параметром.
2. Допускается создавать при выполнении проги временные файлы,которые не сохраняются после окончания программы.
Просьба писать с комментариями.Заранее спасибо.
С Новым Годом :p
 
Сверху