Wie man CLion einfügen generierten code... in .cpp Dateien
Generieren von code in CLion immer dazu führten, dass die Methoden implementiert, die in der header-Dateien, ich habe immer gelehrt worden, dass Sie gehen sollten .cpp-Dateien, wie kann ich das ändern, dass Verhalten und ist es überhaupt möglich ?
Beispiel :
In ein Projekt mit ein main.cpp und eine Testklasse (test.hpp, und test.cpp).
Den CMake-Datei ist wie folgt:
cmake_minimum_required(VERSION 3.3)
project(testClion)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp
test.cpp
test.hpp)
add_executable(testClion ${SOURCE_FILES})
(beachten Sie, dass dies ist die Standard-Datei zur Verfügung gestellt von clion, ich habe nichts verändert)
test.hpp
#ifndef TESTCLION_TEST_HPP
#define TESTCLION_TEST_HPP
class test
{
protected:
int test;
};
#endif //TESTCLION_TEST_HPP
test.cpp
#include "test.hpp"
Drücken der Tastenkombination ALT + EINFÜGEN und generieren von Getter/setter im test.hpp ODER test.cpp nur ändert der test.hpp:
test.hpp
#ifndef TESTCLION_TEST_HPP
#define TESTCLION_TEST_HPP
class test
{
public:
int getTest() const
{
return test;
}
void setTest(int test)
{
test::test = test;
}
protected:
int test;
};
#endif //TESTCLION_TEST_HPP
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, ich habe eine tatsächliche Lösung für Sie. Ich hatte das gleiche problem, wo ich das tun könnte
alt + enter
und ich konnte nur noch automatisch generieren pro Methode. Sie können arbeiten, um dieses überalt + insert
. Dies bringt die generation-Menü in Clion. Von hier aus wählen Siegenerate definitions
was bringt ein Menü, in dem Sie entweder wählen alle Definitionen oder wählen Sie ein wählen Sie einige, die Sie eigentlich erzeugen wollen.Clion ist schlau genug zu wissen, wenn Sie haben bereits generiert eine definition, so dass Sie nicht haben, um sorgen über doppelte Definitionen hier. Ich habe festgestellt, dass mit QT jedoch, dass bestimmte Klassen Meta-Objekt-Compiler setzt, zeigen sich hier, so dass ich sicherstellen, dass nicht diejenigen auszuwählen, die beim erstellen von Definitionen, aber für die meisten normalen Fällen verwenden, wählen Sie jedes element in der
generate definitions
Liste wird nur generiert, die Dinge hast du eigentlich im header definiert.Hinweis: Sie können auch mit der rechten klicken Sie auf Ihre Klasse Namen und gehen Sie zu
Generate...
und Sie erhalten die gleichen Optionen.EDIT: Hinweis: wenn Sie tatsächlich wollen, dass das Verhalten des ursprünglichen Autors, können Sie die Option "generieren" in-place" - option, wenn Sie sich mit dem generieren von Definitionen, Funktions-Auswahl-Bildschirm
CLion eigentlich erklärt der Methoden in der header-Datei und legt Sie in die .cpp-Datei, sofern es 'weiß', dass beide Dateien miteinander verknüpft sind. Ich habe bemerkt, dass beim erstellen von neuen source-Dateien, die Sie haben, um neu zu laden cmake (CMake-toolbar > "neu Laden CMake-Projekt" - Symbol) für die IDE zu nehmen .cpp-Datei zu berücksichtigen, vor allem, wenn Sie
file(GLOB xxx)
zur Liste der Quellcode-Dateien.Bitte überprüfen Sie auch, dass:
Hinweis: CLion bietet eine einfache Möglichkeit zu bewegen, die Methode, die die Umsetzung auf die source-Datei, wenn nötig. Platzieren Sie den cursor auf eine Methode in der header-Datei, drücken Sie
Alt + Enter
und klicken Sie aufMove function definition to source file
.Ich hatte das gleiche Problem als ich das erste begann mit CLion. Ich war in der Lage, zu definieren, wo implementieren Sie die Methoden mit der Absicht Menü "Aktionen" (gelb Globus). Ich war verwirrt, indem Sie versuchen, verwenden Sie den falschen hotkey.
Derzeit in der version 2016.1.2:
Intention Actions
Menü, indem man die Maus in der Nähe und auf der Welt, oder durch drücken der hotkey-Tastealt + enter
option + enter
Generate definition for function 'someFunction'
hinzufügen definition in der source-Datei.Create new function 'someFunction()'
hinzufügen der definition in der header-Datei (wo die Umsetzung erfolgt bereits in der Quelle).