Войти
ПрограммированиеФорумОбщее

Сверх простой вопрос по С++. Нуб. )))

#0
15:06, 16 янв. 2012

//Main.cpp
#include <iostream>
#include "conio.h"
#include <vector>
#include <algorithm>


void main()
{
  spetial();
  getch();
}

//spetial.cpp
#include <iostream>
static void spetial()
{
  std::cout << "spetial()";
}

------ Build started: Project: main, Configuration: Debug Win32 ------
Compiling...
main.cpp
c:\documents and settings\administrator\my documents\visual studio 2008\projects\main\main\main.cpp(10) : error C3861: 'spetial': identifier not found
Generating Code...
Skipping... (no relevant changes detected)
spetial.cpp
Build log was saved at "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\main\main\Debug\BuildLog.htm"
main - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Как сделать чтоб откомпилировалось?


#1
15:09, 16 янв. 2012
//spetial.h
#pragma once

void spetial();
//spetial.cpp
#include "spetial.h"
#include <iostream>
void spetial()
{
  std::cout << "spetial()";
}
//Main.cpp
#include "spetial.h"
#include <iostream>
#include "conio.h"
#include <vector>
#include <algorithm>


void main()
{
  spetial();
  getch();
}
#2
15:13, 16 янв. 2012

0iStalker

Так и я умею. Так не пойдет.  Куда static дел? Нужно чтоб было  с статиком.

#3
15:14, 16 янв. 2012

nagibator_7_7_7

Со статиком не будет работать. Никогда.

#4
15:38, 16 янв. 2012

nagibator_7_7_7
> Нужно чтоб было с статиком.

зачёт на носу ? :)

#5
16:16, 16 янв. 2012

nagibator_7_7_7
> Так и я умею. Так не пойдет. Куда static дел? Нужно чтоб было с статиком.
Забацай через указатели на функции.

#6
16:19, 16 янв. 2012
//spetial.h
#pragma once
#include <iostream>

static void spetial()
{
  std::cout << "spetial()";
}


//main.cpp
#include <iostream>
#include "conio.h"
#include "spetial.h"

void main(int argc, char* argv)
{
  spetial();
  getch();
}
#7
18:41, 16 янв. 2012

nagibator_7_7_7, у любых переменных, функций и т.п. созданных c атрибутом static зона действия только в одном файле, в приведенном тобой примере - spetial.cpp. Т.е. объявляя эту же функцию в main.cpp тебе будет нужно заново ее инициализировать.

#8
18:59, 16 янв. 2012

sildc
  Бинго!!!

#9
20:27, 16 янв. 2012

очучение, что топикастеру препод сказал именно через static сделать :)
ну чтобы практики не прогуливал

#10
20:30, 16 янв. 2012

Интересно, глаза препода залезут на лоб или вдавятся в глазницы, когда он увидит, что nagibator_7_7_7 все сделал через static и оно работает!

#11
21:06, 16 янв. 2012
//spetial.cpp
#pragma once
#include <iostream>

#define static 

static void spetial()
{
  std::cout << "spetial()";
}

#undef static
вот еще вариант
#12
21:27, 16 янв. 2012

HolyDel
> HolyDel
да уж... )

#13
21:27, 16 янв. 2012

HolyDel
> вот еще вариант
палевно :)))) надо в хедерах дефайнить - и сдвинуть за экран :))))))))

#14
21:37, 16 янв. 2012

fsmoke
> и сдвинуть за экран :))))))))

я так делал когда сдавал метод Галеркина для вычмата :)

ПрограммированиеФорумОбщее

Тема в архиве.